[megoldva] boot: ext4 ⟶ btrfs

Fórumok

Átmigráltam a / partíciómat (/boot is rajta van) ext4-rol btrfs-re. Nem a meglévő filerendszert alakítottam át, mert amúgy is vettem új diszket és gondoltam ha már át kell másolnom mindent teszek egy próbát a btrfs-sel itt is. Szóval formáztam az új disket és mindent átmásolgattam. Az ilyenkor szokásos, fstab macerálás, grub matatás megvolt és végül működik is minden... egy apró hibával.

Csak akkor bootol fel a rendszer ha a grub.cfg-ben a kernelnek beadom az "rw" paramétert a szokásos "ro" helyett. Így működik, amúgy nem bootol fel. Mitől van ez? Amennyire tudom ez a paraméter annyit tesz, hogy a / -t read-only mode-ban mountolja fel a kernel, de aztán az initrd ezt úgyis átirja amikor az fstabot felolvassa.

Hol rontottam el? Nincsenek (még) subvolume-jaim, semmi extra, egyetlen btrfs particio (van másik is ami korábban is volt, de az nem kell a boothoz). Az fstab-ban csak kicseréltem az ext4-et btrfs-re, meg az ID-t írtam át, talán más is kellett volna?  Jelenleg az egyetlen opcióm ott `errors=remount-ro` (ahogy korábban az ext4-nél is volt).

Mindez Ubuntu 18.04-en, ha ez számít.

Hozzászólások

Érdemes a root-ot is subvolume-ra rakni, mert akkor tudod snapshotolni és könnyen cserélgetni.
Az Ubuntu-s telepítő is így csinálja egyébként.

Nálam subvolume-on van a root és működik a ro boot flag.
Hátha ez segít, nekem ez van az ominózus grub.cfg sorban:

        linux	/@/boot/vmlinuz-4.15.0-97-generic root=UUID=b162b995-9aa8-493b-9a92-6a2d6484246e ro rootflags=subvol=@  quiet splash resume=/dev/sda3 $vt_handoff

Az fstab az induláskor nem játszik, de azért mutatom.

fstab részlet:

UUID=b162b995-9aa8-493b-9a92-6a2d6484246e /               btrfs   noatime,nodiratime,subvol=@ 	0       1
# /boot/efi was on /dev/sda1 during installation
UUID=3298-F16B  /boot/efi       vfat    umask=0077      0       1
# /home was on /dev/sda2 during installation
UUID=b162b995-9aa8-493b-9a92-6a2d6484246e /home           btrfs   noatime,nodiratime,subvol=@home 0       2
> sudo btrfs subvolume list /
ID 257 gen 5615224 top level 5 path @
ID 258 gen 5615224 top level 5 path @home
ID 259 gen 5613192 top level 5 path @projects
...

Az initrd-nek persze nem kell az fstab, de utana az fstab alapjan van ujramountolva a "/". Az segitett vegul, hogy az fstab opciokhoz hozzaadtam a "subvol=/" -t. Igy most bootol "ro"-val is rendesen (Es a "rootflags=subvol=/" nincs a grub.cfg-ben mint kernel parameter, de igy is megy. Gondolom azert mert az a default subvolume... de akkor meg az fstab-ba miert kell?)