ADVANCED ЗАГРУЗОЧНЫЙ NIX-ФЛОПАРЬ

Спецвыпуск Xakep, номер #017, стр. 017-080-4


ldd file_name

Например, ldd /bin/cp. Эта команда выдаст на выход список требуемых cp’шкой библиотек. Копируй их из /lib в /mnt/fd_/lib командой, типа

cp /lib/libc-2.4 /mnt/fd_/lib

Сочувствую, но придется проделать то же самое для всех файлов из /bin и /sbin виртуальной корневой файловой системы :). Зато на этом мучения с ее формированием заканчиваются. Осталось только ее сжать:

umount /mnt/fd_

dd if=/dev/ram0 bs=1k | gzip -v9 > root.gz

В папке /mnt появится файл root.gz – это и есть сжатая корневая файловая система.

ПЕРЕНОС

Ядро есть, сжатая корневая файловая система есть – осталось только разместить их по дискеткам. Скопируй все это хозяйство в какую-нибудб темповую папку (скажем, /root/tmp) и набирай:

dd if=bzImage of=/dev/fd0 bs=1k

Ты увидишь что-то, типа

n+1 records in

n+1 records out

Запомни число n+1 – нам с ним еще предстоит гимориться :).

Теперь вводи следующее:

rdev /dev/fd0 /dev/fd0

rdev -R /dev/fd0 0

Вычисли по формуле val = n+1+49152 и набирай:

rdev -r /dev/fd0 val

Все, первая дискетка (с ядром) готова! Вытаскивай ее, вставляй вторую и сразу набирай:

dd if=root.gz of=/dev/fd0 bs=1k

Погоди, пока сжатая корневая файловая система скопируется и вытаскивай дискету. Пометь первую дискетку как boot_disk (пометь, я имею в виду бумажкой :), не пугайся), а вторую root_disk. Пихай в флоповод boot_disk и перезагружайся. Велик шанс, что ничего работать не будет ;). Но это нормально – с первого раза ни у кого не получается (прямо как в «Матрице»). Пробуй, ищи баги, испарвляй. Кстати, от загрузочной дискеты до собственного дистрибутива всего один шаг :).

Назад на стр. 017-080-3  Содержание