Hello Testers and rawhide Users, Fedora 17 will locate the entire base operating system in /usr. The directories /bin, /sbin, /lib, /lib64 will only be symlinks: /bin → /usr/bin /sbin → /usr/sbin /lib → /usr/lib /lib64 → /usr/lib64 Some reasoning behind this change is outlined here: http://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge The official Fedora 17 feature page is here: https://fedoraproject.org/wiki/Features/UsrMove The needed changes to implement the unified filesystem are about to land in rawhide soon. New installations of rawhide/Fedora 17 will install the symlinks right away, and no special care needs to be taken Currently installed systems need some manual steps to convert the current system to match the layout of rawhide/Fedora 17. After that, the system can continue to be updated with YUM as usual. Some RPM packages in rawhide/Fedora 17 will carry a RPM dependency guard, which will make sure, they can only be installed when /bin, /sbin, /lib, /lib64 are symlinks and not directories like in Fedora 16 and older. The installed system’s base filesystem layout can not be safely altered, while the system itself is running on top of it. Dracut, the initramfs used to find and mount the root filesystem, can be instructed to convert the filesystem to match rawhide/Fedora 17’s expectations. A screenshot of a successful conversion process is here: http://people.freedesktop.org/~kay/usrmove-convert-log.png The packages, which are about to land in rawhide, are at this moment available via the ‘f17-usrmove’ koji tag. They are ready for testing now. Any tests, preferably in virtual machines or snapshots, where failures are acceptable, are more than welcome, and any feedback is greatly appreciated. Keep in mind, that this still needs wider testing and a possible bug in the conversion logic might break an installed system. Please be careful with your data, do not try this on a production system, and always have a backup of your data. If your system has a split-off /usr, a separate mount point, the dracut /usr mount conversion logic for /usr on NFS is not yet supported; we are working on it. /usr on iSCSI, FCoE, NBD although is supported, as long as “netroot=...” is specified on the kernel command line for these disks (see man dracut.kernel(7)). Please report any issues regarding the /usr-move test (not general rawhide bugs) by replying to this email, by sending an email to the fedora-test list <test@xxxxxxxxxxxxxxxxxxxxxxx>, or by grabbing ‘haraldh’ or ‘kay’ on IRC #fedora-devel on freenode, or contact us by email directly. The final guard in RPM is not yet enabled in the ‘f17-usrmove’ koji tag version of the packages. Make sure you never install any of the packages below this tag on an unconverted system, it will not be able to bootup. Before the packages hit rawhide, the guard will be enabled and safely prevent these packages to be installed on unconverted systems. At the moment, we are still waiting for an updated RPM in the koji buildsystem, which provides the runtime check for the filesystem guard. After this is resolved by Fedora Release Engineering, we can go ahead and enable the needed guard and move the packages from the ‘f17-usrmove’ koji tag to ‘rawhide’: https://fedorahosted.org/rel-eng/ticket/5034 This is the screen log of a full conversion and update process: http://people.freedesktop.org/~kay/usrmove-convert-log.txt Here are the steps to prepare your system, to convert it, and to be able to continue updating your installed system with YUM: Download and install the most recent dracut package from rawhide: # yum --enablerepo=rawhide update dracut Update the installed initramfs image for your current kernel, and instruct dracut to include the dracut module to convert your current filesystem: # dracut --force --add usrmove If dracut detects ‘rd.usrmove’ on the kernel command line at bootup, it starts the filesystem conversion of the root filesystem. Change the following kernel commandline parameter directly in the bootloader menu, which is shown during bootup, or edit the line in /etc/grub*.cfg. - remove “ro” - append “rw” to let dracut mount your root filesystem writeable - remove “rhgb” to hide the graphical bootsplash - append “rd.info” to get a more verbose output from dracut - append “rd.usrmove” to enable the /usr-move conversion script in dracut - append “selinux=0” for now, because the relabeling in a converted F16 system does not seem to work properly at this moment During bootup, dracut will now convert your filesystem, and /lib, /lib64, /bin and /sbin should then all be symbolic links to the corresponding directories in /usr. After the conversion, the system needs to be immediately updated to rawhide. No packages from F16 or F15, or older rawhide packages must be installed anymore. Make sure to disable any F15 and F16 repositories in yum! Any files with conflicting names, which the conversion could not resolve, will be backed up to files named *.usrmove~ residing in /usr/lib, /usr/lib64, /usr/bin and /usr/sbin. The log messages, which dracut has generated during bootup, can be retrieved with: # dmesg | grep dracut After a successful conversion, revert the changes made to the kernel command line in the bootloader config file /etc/grub*.cfg. SELinux relabelling should take effect after you rebooted your updated system and can take a long time (at least in a VM it takes insanely long and is still not finished). We are currently investigating, what seem to take so long, so you might consider to test with SELinux disabled for now. Until the rawhide repository gets all the converted rpms, use the f17-usrmove repository to update the system after the filesystem conversion and disable rawhide in the file /etc/yum.repos.d/fedora-rawhide.repo Add f17-usrmove in the file /etc/yum.repos.d/f17-usrmove.repo [f17-usrmove] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://koji.fedoraproject.org/repos/f17-usrmove/latest/$basearch enabled=1 metadata_expire=1d gpgcheck=0 # yum clean all # yum upgrade After upgrading, all should be set and done. Have fun with your system and say “Good bye” to /bin, /sbin, /lib, /lib64 and meet them in /usr. :-) -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel