|

楼主 |
发表于 2002-11-25 21:42:39
|
显示全部楼层
Creating a custom bootdisk
怎样建立一适当的bootdisk 那些目的这是给创造" bootdisk,援救" 那装足够的' linux ' 使你能够援救经营将。 用其在这里被提出你将能确实把操作,发起和unmounting 和其他任务归档。 但是这不是限制。 最小磁盘描述在这里,你能增加你能试穿松懈的任何东西。 靴子磁盘/ 营救磁盘 首先我们创造将loopback 文件可建造营救磁盘图像关于,下一我们使文件在那些映象文件上的系统将, 然后,我们将使用' 爬上' 爬上文件一正规磁盘,允许我们读并且写文件从loopback 文件中当时。 以下的命令将建造我们一幅4 MB 图像。
dd if=/dev/zero of=/tmp/rfloppy bs=1k count=4096 &&
mke2fs -m 0 -N 2000 /tmp/rfloppy &&
mount -o loop /tmp/rfloppy /mnt/loop1 &&
rmdir /mnt/loop1/lost+found/
我们有一骑在马上并且可用的文件,让我们准备充满有用的材料。 因为这只是松懈一次营救,我们只将需要摆放最小目录。
mkdir /mnt/loop1/{dev,proc,etc,sbin,bin,lib,mnt,usr,var}
下一步,我们将建立设备文件。 我在我的系统上使用devfs,当不论如何我只有我使用的装置时,因此以下的命令正常工作。 如果你使用MAKEDEV 建立你的装置, 你想要将整理 /mnt / loop1 / 发展目录恢复空间以在那些发展目录你没使用内的所有装置浪费的那些inode。
cp -dpR /dev/* /mnt/loop1/dev
现在倾向于 /etc目录。 对启动,我们将做的全部使用适合我们静止chroot 我们建造LFS 的环境工作的passwd 和组文件。 我们复制那些开始手稿将也越过和作为起始点好为服务的一些其他文件。
cp -ax /etc/rc* /mnt/loop1/etc
cp -ax /etc/fstab /mnt/loop1/etc
echo "root:x:0:0:root:/root:/bin/bash" > /mnt/loop1/etc/passwd
cat > /mnt/loop1/etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
tape:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
EOF
在防止自动地面接收机终端硬盘间壁的爬上,保证把noauto 选择加进他们的fstab 进入。 此外,给添加以下的入口 /mnt / loop1 /etc/fstab 有爬上我们最松懈的和那些公羊图像帮助
/dev/ram0 / ext2 defaults
/dev/fd0 / ext2 defaults
下一步,我们将安装busybox 到这幅图像上。 Busybox 合并大多数* nix 功能进一个单个的小的executable 文件。
tar -xzvf busybox-0.60.4.tar.gz
cd busybox-0.60.4
make &&
make PREFIX=/mnt/loop1 install
cp -ax /var/utmp /mnt/loop1/var
mkdir /mnt/loop1/var/log
此外,记住你的空间限度,复制你对这幅图像需要的任何其他二进制和图书馆。 使用ldd 看见你将需要哪个信息库复制为为任何executables 的命令。
因为我使用devfs 创造装置高速旋转,现在和免费向上宝贵inodes 关于松懈, 我们也将安装devfsd 使busybox 期望发现的装置变得容易。
mv GNUmakefile Makefile
make
make PREFIX=/mnt/loop1 install
cp /lib/libc.so.6 /lib/ld-linux.so.2 /lib/libdl.so.2 /tmp
strip --strip-deb /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2
mv /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 /mnt/loop1/lib/
我们也将需要建立一篇rc 手稿处理devfsd 开始。 把这放进/mnt /loop1 /etc/init.d/rcS
#!/bin/sh
mount -t devfs devfs /dev
/sbin/devfsd /dev
下一步建立你压缩的根filesystem。 我们使用 -有gzip 的9 做尽可能小压缩的图像。
umount /mnt/loop1 && dd if=/tmp/rfloppy bs=1k | gzip -v9 > rootfs.gz
ls -l rootfs.gz to make sure it will fit on the diskette.
使适合尺寸乐观的一风俗果仁。 只包括那些特征你将需要援救你的系统。 建造的感觉没有在对的支持类似的东西xfree86 dri,等等,同样援救从迅速的命令那里执行。
dd if=rescueimg of=/dev/floppy/0 bs=1k
429+1 records in
429+1 records out
rdev /dev/floppy/0 /dev/floppy/0
rdev -R /dev/floppy/0 0
在这个例子里rescueimage( 果仁) 是尺寸429 +1 个街区。 我们将为下一命令记得这。 我们现在写根文件系统就在果仁关于松懈之后。 通过做16384 +429 +1 = 16814
rdev -r /dev/floppy/0 16814
dd if=rootfs.gz of=/dev/floppy/0 bs=1k seek=430
在我们使用的这命令内想办法发现的结束果仁( 429 +1) 并且写根文件系统对松懈。 |
|