[Debian] 在 ext4 分区上全新安装 debian etch

Ext4 文件系统现在已经达到了一个很火爆的程度,想体验一下的朋友可以和我一起进入短途旅程,因为安装确实简单。
英文原版出处,暂时不可考,HongMayi 将其翻译,并完整化,转载请保留此段文字。

在 ext4 文件系统下安装 Debian

1、全新安装 Debian Etch 或者 Lenny。

2、我们安装全新系统的时候,需要一个临时的根目录,安装后我们会删除这个临时根(temporal ext3 root)。

3、准备一个将来是用的真正的根目录(real root)。

4、假定我们的分区表为

/dev/sda1   /boot
/dev/sda2           (这个就是将来真正的根目录 real root)
/dev/sda3   swap
/dev/sda4   /       (temporal ext3 root)

你可以按照自己的喜好分区,我这里为了测试,简单的将除了启动分区以外的所有目录都分在根分区下

5、我们需要一个支持 ext4 的内核,2.6.28.2 (2.6.28.x 或者更高的版本都可以)

6、需要下载 e2fsprogs,我们可以从 Debian Lenny 的源里面下载,包信息如下

e2fsprogs                            1.41.3-1                   ext2/ext3/ext4 file system utilities

下载地址

http://ftp.tw.debian.org/debian/pool/main/e/e2fsprogs/
http://ftp.tw.debian.org/debian/pool/main/e/e2fsprogs/e2fsprogs_1.41.3-1.dsc

或者直接从命令行下载并安装

dpkg-source -x e2fsprogs_1.41.3-1.dsc

7、进入 e2fsprogs-1.41.3 目录

cd e2fsprogs-1.41.3

8、编辑控制文件

vi debian/control
删除所有 dbg 包的入口

9、编辑规则文件

vi debian/rules

找到

# debug package stuff

这行,并编辑,添加 debug 目录

# debug package stuff
rm -rf ${udebdir}/usr
rm -rf ${blkidudebdir}/usr
rm -rf ${uuidudebdir}/usr

mkdir -p ${debugdir}/usr/lib
mkdir -p ${maindir}/usr/lib/debug
mv ${maindir}/usr/lib/debug ${debugdir}/usr/lib
rm -rf ${maindir}/usr/lib/debug
mkdir -p ${debugdir}/usr/lib/debug
mkdir -p ${e2fsckstaticdir}/usr/lib/debug/sbin
touch ${e2fsckstaticdir}/usr/lib/debug/sbin/aa
mv ${e2fsckstaticdir}/usr/lib/debug/sbin/* \
${debugdir}/usr/lib/debug
rm -rf ${e2fsckstaticdir}/usr/lib

mkdir -p ${uuidruntimedbgdir}/usr/lib
mkdir -p ${uuidruntimedir}/usr/lib/debug
mv ${uuidruntimedir}/usr/lib/debug ${uuidruntimedbgdir}/usr/lib
rmdir ${uuidruntimedir}/usr/lib

mkdir -p ${libext2dbgdir}/usr/lib
mkdir -p ${libext2dir}/usr/lib/debug
mv ${libext2dir}/usr/lib/debug ${libext2dbgdir}/usr/lib
rmdir ${libext2dir}/usr/lib

mkdir -p ${libcomerrdbgdir}/usr/lib
mkdir -p ${libcomerrdir}/usr/lib/debug
mv ${libcomerrdir}/usr/lib/debug ${libcomerrdbgdir}/usr/lib
rmdir ${libcomerrdir}/usr/lib

mkdir -p ${libssdbgdir}/usr/lib
mkdir -p ${libssdir}/usr/lib/debug
mv ${libssdir}/usr/lib/debug ${libssdbgdir}/usr/lib
rmdir ${libssdir}/usr/lib

mkdir -p ${libuuiddbgdir}/usr/lib
mkdir -p ${libuuiddir}/usr/lib/debug
mv ${libuuiddir}/usr/lib/debug ${libuuiddbgdir}/usr/lib
rmdir ${libuuiddir}/usr/lib

mkdir -p ${libblkiddbgdir}/usr/lib
mkdir -p ${libblkiddir}/usr/lib/debug
mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/usr/lib
rmdir ${libblkiddir}/usr/lib

编辑好的文件如下,有人已经提供下载了

http://undead.sikazozo.org/control_and_rules.tgz

10、开始切换根目录
a、安装 debian/rules 下面的二进制包

dpkg -i ../*.deb

b、格式化已经准备好的 real root

mkfs.ext4 /dev/sda2

c、挂载其到临时目录 /mnt

mount -t ext4 /dev/sda2 /mnt

d、进入 mnt 目录,并创建 boot mnt media proc 目录

cd /mnt; mkdir {boot,mnt,media,proc}

e、将临时根下面的文件复制到 /mnt 目录

rsync -avP --exclude "/boot" --exclude "/proc" --exclude "/mnt" --exclude "/media" / .

f、编辑分区表挂载文件

vi /mnt/etc/fstab

将原始根
/dev/sda4       /               ext3    defaults,errors=remount-ro 0       1
转换为
/dev/sda2       /               ext4    defaults,errors=remount-ro 0       1

并将其设置为 ext4 分区格式

g、编辑 grub 启动文件

vi /boot/grub/menu.lst
将默认的
kopt=root=/dev/sda4
转换成
kopt=root=/dev/sda2 rootfstype=ext4

h、更新 grub

/usr/sbin/update-grub

11、重新启动,并将原来的 /dev/sda4 删除即可

现在开始体验强大的 ext4 吧