(Created page with "= Reinstalling Fedora with Kikcstart on BTRFS = by Gene Czarcinski In general, kickstart has good support for installing onto btrfs subvolumes. However, there is one case t...") |
m (M4rtink moved page Anaconda/Kikcstart/ReinstallingFedoraWithKickstartOnBTRFS to Anaconda/Kickstart/ReinstallingFedoraWithKickstartOnBTRFS) |
(No difference)
|
Latest revision as of 18:00, 18 November 2014
Reinstalling Fedora with Kikcstart on BTRFS
by Gene Czarcinski
In general, kickstart has good support for installing onto btrfs subvolumes. However, there is one case that has a small problem: re-installing onto an existing subvolume rootfs and /
or /boot
.
Problem: To do an install, Anaconda requires that the rootfs and /boot be "freshly formatted." For regular partitions and LVMlv, this presents no problem, just reformat the partition or LVMlv. On the other hand, a btrfs subvolume more closely resembles a directory than a partition and how do you re-format a directory? ... well, by deleting it and then re-defining it. This can be done easily when a regular GUI or text manual install but kickstart is another matter.
Solution: Use a %pre
section to delete the subvolume. Given a system with /boot
on a ext4 partition and an existing btrfs volume supporting root6 and home subvolumes, it would look something like:
clearpart --none part swap --fstype=swap --noformat --onpart=UUID=a3b0c2ad-88c8-4d6d-876c-7c52881ab854 #part /boot --fstype=ext4 --onpart=sda4 #part /boot --fstype=ext4 --onpart=sda5 part /boot --fstype=ext4 --onpart=sda6 #part /boot --fstype=ext4 --onpart=sda7 part btrfs.10 --fstype=btrfs --noformat --label=ten --onpart=UUID=0f0f82cb-ed27-4468-a18c-64a877b64329 btrfs / --subvol --name=root6 ten btrfs /var --subvol --name=var6 ten btrfs /home --subvol --name=home --noformat ten %pre --log=/tmp/pre-install.log echo "manage the btrfs subvolumes" mkdir /mnt/btrfsvol mount UUID=0f0f82cb-ed27-4468-a18c-64a877b64329 /mnt/btrfsvol btrfs subvol list /mnt/btrfsvol btrfs subvol delete /mnt/btrfsvol/root6 btrfs subvol delete /mnt/btrfsvol/var6 btrfs subvol list /mnt/btrfsvol umount /mnt/btrfsvol rmdir /mnt/btrfsvol %end %post --nochroot --log=/mnt/sysimage/root/post-install.log cp -v /tmp/pre-install.log /mnt/sysimage/root %end
The first time this is run, the btrfs subvol delete
will produce errors. Thereafter, reruns will delete the subvols so they can be re-installed.