PLD w ramdysku przez PXE

Marcin Król hawk w limanowa.net
Pon, 24 Lip 2006, 17:02:58 CEST


> Co z tym zrobić? Czego nie wrzuciłem, co zmienić, co poprawić?

Nie wiem jak to robi rescue, ale ja obrazy do bootowania bezdyskowo
przez siec robie tak:

1. Przygotowuje sobie docelowy system, kompresuje go do system.tar.bz2

2. Przygotowuje w drugim katalogu zawartosc initrd, wyglada to np tak:

drwxr-xr-x   2 root root     4096 Jan  1  1970 bin
drwxr-xr-x   2 root root    40960 Jan  1  1970 dev
-rwxr-xr-x   1 root root      476 Jan  1  1970 linuxrc
drwxr-xr-x   2 root root     4096 Jan  1  1970 proc
drwxr-xr-x   2 root root     4096 Jan  1  1970 rootfs
-rw-r--r--   1 root root 18742886 Jan  1  1970 system.tar.bz2

W bin mam wlasna minimalna statyczna kompilacje busyboxa czyli:

lrwxrwxrwx  1 root root      7 Jul 24 16:49 [ -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 ash -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 bunzip2 -> busybox
-rwxr-xr-x  1 root root 109216 Jan  1  1970 busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 chroot -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 echo -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 freeramdisk -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 mount -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 pivot_root -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 sh -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 tar -> busybox
lrwxrwxrwx  1 root root      7 Jul 24 16:49 umount -> busybox

W dev mam pelny dev wziety z zywego systemu. Mozesz go przyciac do
wlasnych potrzeb, ale zysk w wielkosci jest tak maly, ze mi sie nie
chcialo :)

proc i rootfs to puste katalogi, a linuxrc to wykonwyalny skrypt
(przykladowa zawartosc ponizej). I to wszystko. Pieknie startuje po PXE :)

M.

#!/bin/sh

echo "Creating RAM disk..."
mount -n -t proc none /proc
mount -n -t tmpfs -o size=64M,nr_inodes=25k none /rootfs
cd /rootfs
echo "Uncompressing filesystem, please wait..."
tar jxf /system.tar.bz2
echo "Changing root..."
cd /
umount /proc
cd /rootfs
pivot_root . initrd
cd /
/bin/echo "Initializing..."
exec /usr/sbin/chroot . /bin/sh -c \ '
/bin/sleep 3;
/bin/umount initrd;
/sbin/blockdev --flushbufs /dev/ramdisk;
exec /sbin/init
' <dev/console >dev/console 2>&1


Więcej informacji o liście dyskusyjnej pld-users-pl