Участник:NickGrechukh/Propagator/nfsroot
Материал из ALT Linux Wiki
Версия 16:01, 28 июля 2008
как я это делал. полученный экспириенс надо бы выложить уровнем выше, пока пусть будет так. оно работает :)
для получения образа использовался spt с profileм live, полученный блоб разворачивается при помощи unsquashfs и пилится по мере необходимости. Одно из допиливаний - remount_root_rw. Unionfs имет документированную траблу с бранчем из reda only nfs, при монтировании надо использовать nfsro вместо ro (а не внести ли нам remount_rood_readwrite в штатный /etc/init.d/functions, ради pristine в всяких livecd? а не приделать ли к этой функции автоугадав nfs корня, более прямой чем мое grep -q 'method:nfs' /proc/cmdline ?)
вообще в качестве nfsroot годится любая система, достаточно живая чтобы взбутнуться на уже смонтированном read only корне. однако, spt заодно сделает нам full.cz со свежим пропагатором, а в нем modules.mar для свежего ядра.
Развернутый корень обязательно экспортировать с no_root_squash, если неразвернутый squashfs - это не нужно.
замечания по пропагатору: он делает reverse lookup своего айпишника, поэтому для экономии времени желательно иметь dns сервер с обратной зоной. а лучше еще и с прямой, да чтобы A и PTR совпадали. Тогда в qemu до запуска stage2 доходит секунд за 20. иначе - ждем таймаутов и весь прцесс занимает в qemu до 10 минут.
gns@gns gns/qemutest/miniroot $ cat /etc/qemu-ifup #!/bin/sh sudo /sbin/ifconfig $1 10.105.0.1/16 gns@gns gns/qemutest/miniroot $ cat /etc/exports /home/public/sisyphus (ro,subtree_check) /home/public/gns/qemutest/installer *.tpway.com(ro,nocrossmnt,subtree_check,no_root_squash) /home/public/gns/qemutest/miniroot *.tpway.com(ro,nocrossmnt,subtree_check,no_root_squash) gns@gns ~ $ export STAGE2ROOT=/home/public/gns/qemutest/miniroot gns@gns ~ $ cd $STAGE2ROOT gns@gns gns/qemutest/miniroot $ mkdir altlinux && cd altlinux gns@gns qemutest/miniroot/altlinux $ sudo tar xf /home/public/gns/altlinux-mini-20061201.tar.gz gns@gns qemutest/miniroot/altlinux $ mkdir image && cd .. gns@gns gns/qemutest/miniroot $ ls altlinux bin boot dev etc home image lib media mnt opt proc root sbin srv sys tmp usr var gns@gns gns/qemutest/miniroot $ ls -l итого 28 drwxrwxr-x 20 root root 4096 Дек 5 09:43 altlinux drwxr-xr-x 3 gns gns 4096 Дек 4 23:42 isolinux -r--r--r-- 1 root root 4822 Ноя 2 2005 LICENSE.html -r--r--r-- 1 root root 8474 Ноя 2 2005 LICENSE.RU.html gns@gns gns/qemutest/miniroot $ qemu -m 128 -net nic,model=rtl8139,vlan=0 -net tap,vlan=0,ifname=tap0 -kernel $STAGE2ROOT/isolinux/alt0/vmlinuz -initrd $STAGE2ROOT/isolinux/alt0/full.cz -hda /tmp/test.img -append "live fastboot automatic=method:nfs,interface:eth0,network:static,ip:10.105.0.2,netmask:255.255.0.0,hostname:qemu.gns.tpway.com,server:gns.tpway.com,dns:10.105.0.1,gateway:10.105.0.1,directory:$STAGE2ROOT stagename=altlinux"