Здравствуйте. Как уважающий себя линуксоид решил наконец собрать для себя маленький дистрибутивчик, который бы возможно было записать на флешку с FAT и использовать для ремонтно-восстановительных работ. Я решил сделать дистрибутив только с необходимыми мне инструментами. Мне не нужны иксы. Состав пакетов: mc, nano, dd, cfdisk, fdisk, ntfs3g, ntfsprogs, dosfstools, fsck, ну а чтобы форматирование дисков и снос разделов не был удручающим занятием, во время убиения хардов и форматирования разделов можно сыграть в space invaders (консольный pacman я не нашёл в отдельном виде). Прочитав инструкцию от автора MoviX'а я пошёл по его пути. Скачал и собрал новое ядро (2.6.36, качал это), РабочуюКоробку (BusyBox; качал это), и разметчик диска. Всю работу делал в SlackWare 13.1. Далее создал образ памятного диска:
dd if=/dev/zero of=initrd bs=1k count=5120
mke2fs -F -m 0 -b 1024 /tmp/ramdisk.img 5120
mount /tmp/ramdisk.img /mnt/initrd -t ext2 -o loop=/dev/loop0
/etc/fstab:
none /proc proc defaults 0 0
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
::sysinit:/etc/rc.d/rc.S
# Login /bin/sh invocations on selected ttys.
::respawn:-/bin/sh
vc/2::askfirst:-/bin/sh
# Reboot when ctrl-alt-del keys are pressed.
::ctrlaltdel:/sbin/reboot
# Stuff to do before halting or rebooting.
::shutdown:/sbin/swapoff -a > /dev/null 2 > &1
::shutdown:/bin/umount -a -r > /dev/null 2 > &1
PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:"
LESS=-MM
TERM=linux
HOME=/root
PS='MicroLinux:\1#'
ignoreeof=10
export PATH DISPLAY LESS TERM PS HOME ignoreeof
/bin/sh[br]/bin/ash
/etc/rc.d/rs.S:
#!/bin/ash
/bin/mount -av -t nonfs
/etc/rc.d/rs.S ещё сделал исполняемым путём установки атрибутов. Далее после всего этого выполнил: umount /dev/loop0, далее gzip -9 initrd, далее полез в папку с сорцами ядра, снова make menuconfig, включил опцию поддержки loopback, ramdisk, отключил всё что связано с сетями (за ненужностью), зато включил поддержку ntfs по записи и mc/sd карт, далее собрал make, далее make bzImage, скопировал ядро в /work, переименовал bzImage в vmlinuz, прописал в lilo.conf строки:
image= /work/vmlinuz
initrd = /work/initrd.gz
root = /dev/ram0
rootfs = ext2
ramdisk = 5120
label = MicroLin
read-only
md: Waiting for all devices to be available before autodetect
md: If you don't use raid, use raid=noautodetect
md: Autodetecting RAID arrays.
md: Scanned 0 and added 0 devices.
md: autorun...
md: ... autorun DONE.
RAMDISK: gzip image found at block 0
List of all partitions:
No filesystem could mount root, tried: ext3 vfat msdos iso9660
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
Pid: 1, comm: swapper Not tainted 2.6.36 #1
Call Trace:
[<c124e612>] ? printk+0xf/0x11
[<c124e50f>] panic+0x50/0x144
[<c1378c28>] mount_block_root+0x1eb/0x1ff
[<c10ab285>] ? sys_mknod+0x13/0x15
[<c1378c88>] mount_root+0x4c/0x54
[<c1378dd5>] prepare_namespace+0x145/0x16c
[<c13783e6>] kernel_init+0x195/0x1a4
[<c1378251>] ? kernel_init+0x0/0x1a4
[<c1003176>] kernel_thread_helper+0x6/0x10