The Linux Bootdisk HOWTO 中译版( 五 )




4.2;制作;filesystem;--;Creating;the;filesystem;

为了建造如此的一个;filesystem;,你需要一个多出而够大的设备,能够让你在压缩之前存放所有的档案 。你将需要一个能够存放大约;4;megabytes档案的设备 。有以下几种选择:;


使用;ramdisk;(DEVICE;=;/dev/ram0) 。在这种情况下,记忆体被模拟成一台磁碟机 。;Ramdisk;必须大到能够存放一个适当大小的;filesystem; 。如果你使用;LILO;,请检查你的组态设定档;(/etc/lilo.conf);,找到一行像;
RAMDISK;=;nnn

这行决定可以分配给;ramdisk;的;RAM;之极大值 。预设值是;4096K;,这应该是足够了 。你应该不可能尝试在一台少於;8MB;RAM;的电脑上使用如此的;ramdisk; 。;请检查以确认你有一个设备档像是;/dev/ram0,;/dev/ram;或是;/dev/ramdisk; 。如果没有,请自己以;mknod;(major;number;1,;minor;0)造出;/dev/ram0; 。;
如果你有一个未使用且够大的硬碟;partition;(差不多几megabytes大就可以了),就使用它吧 。;
使用一个;loopback;device;,这可以把一个磁碟档案当做是一台设备来使用 。使用;loopback;device;时,你可以在硬碟上造出一个;3;megabyte;的档案,并於其上建造;filesystem; 。;键入;man;losetup;找寻指令以使用;loopback;devices; 。如果你没有;losetup;,你可以从;ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/;目录中,;util-linux;套件;(package);内相容版本之;mount;与;unmount;的随附物中找到它 。;如果在你的系统上没有;loop;device;档;(/dev/loop0,;/dev/loop1,;etc.),那麽你必须用;``mknod;/dev/loop0;b;7;0"";自己造出一个 。一旦安装好这些特别的;mount;与;umount;二进位档,就请在一台容量够大的硬碟上造出一个暂存档;(temporary;file)(eg,;/tmp/fsfile); 。你可以使用像这样子的指令:;
dd;if=/dev/zero;of=/tmp/fsfile;bs=1k;count=nnn;
以造出一个;nnn-block;的档案 。;请使用自己的档名取代以下的;DEVICE; 。当你下了;mount;指令,你同时要加上;``-o;loop"";选项以告知;mount;是使用;loopback;device; 。;举例来说:;
mount;-o;loop;-t;ext2;/tmp/fsfile;/mnt

以挂上;loopback;device;的方式,把;/tmp/fsfile;挂上;/mnt;这个;mount;point; 。用;df;指令可让你看到以上的结果 。;
在你选择其中一种方法後,请准备;DEVICE;以:;

dd;if=/dev/zero;of=DEVICE;bs=1k;count=4096

这行指令送出一堆;0;把DEVICE填满 。用;0;填满;device;是关键的一步,因为;filesystem之後将会被压缩,所以所有未使用的部分应被用;0;填满以达到最大的压缩比 。无论何时你从你的;root;filesystem;删除档案,请记得这个事实 。实际上;filesystem;只是释出;(de-allocate);这些;blocks;,;但是并没有再把它们填为;0; 。如果你执行过很多次删除与;copy;的动作,你的压缩;filesystem;最後会比必要的大出很多 。;

下一步就是造出;filesystem; 。;Linux;kernel;承认两种能让;root;disks;自动地被;copy;到;ramdisk;上的;file;system; 。它们是;minix;与;ext2;,其中;ext2;是比较受欢迎的 。如果使用;ext2;,你会发现使用;-i;选项指定比预设值更多的;inodes;是有助益的;我们建议用;-i;2000;,这样你就不会用完;inodes; 。如果不用上述选项,你可以移除许多不必要的;/dev;档案以节省;inodes; 。;mke2fs;预设会造出;360;个;inodes在一张;1.44Mb;的磁片上 。我发现在我目前的救援;root;磁片上,;120;个;inodes;是相当足够了,但是如果你把所有的设备档都放入;/dev;目录中,那麽你很容易会超过;360;个inodes; 。使用压缩的;root;filesystem;可让你拥有较大的;filesystem;,同时预设会有更多的;inodes;,但是你仍然必须要不就是减少档案数量,要不就是增加;inodes;数目 。;

因此,你所使用的指令看起来会像这样:;

mke2fs;-m;0;-i;2000;DEVICE

(如果你使用的是一个;loopback;device;,那麽请用你目前所用的磁碟档案替换掉上面的;DEVICE; 。);

推荐阅读