Label v Grubu a Gentoo
V Ubuntu jsem byl zvyknutý, že jsem používal labely (viz můj starší článek Jak identifikovat oddíly) v grubu. To umožňovalo, že v případě přidání nebo odebrání disků do systému došlo vždy ke správnému nabootování systému. Bohužel Gentoo tak nějak s tímhle standardně nepočítá...
20.10.2009
v 23:14
Po delším hledání jsem zjistil, že je problém v init ram disku. Na stránkách Gentoo jsem našel stručný návod, jak labely v grubu zprovoznit. Bohužel od návodu k praktické realizaci bývá dost daleko a přitom je obvykle řešení tak snadné...
Dákladním problémem je, že inicializační RAM disk (initramfs) nedokáže identifikovat LABEL (nebo UUID) v paramateru real_root. V případě, že initramfs rozbalíte (například příkazem zcat /boot/initramfs-genkernel-x86_64-2.6.30-gentoo-r5 | (while true; do cpio -i -d -H newc , --no-absolute-filenames || exit; done)), tak ve skriptu /init zjistíte, že podpora pro labely existuje. Bohužel příkaz findfs není nalezen, protože jednoduše findfs není v initramdisku přítomen. Je tam všehovšudy přítomen jen staticky zkompilovaný busybox (ale bez findfs podpory) a moduly jádra. Řešením je tedy zkopírování vlastního staticky zkompilovaného busyboxu (USE='static') jako programu findfs do /bin nebo /sbin. Initramfs je nutné rozbalit, zkopírovat findfs (busybox) a zabalit příkazem find . -print0 | cpio -ov -0 --format=newc | gzip -9 > /boot/my-initramfs.cpio.gz. Potom vše funguje bez problémů.
Samozřejmě existuje velmi jednoduché řešení (ale přišel jsem na něj pochopitelně až nakonec) - zkompilovat busybox s podporou findfs. Toto je možné příkazem genkernel --menuconfig --disklabel all.
Jak jednoduché a prosté, že?

Komentáře
Zobrazit vše Počet příspěvků: 0