1.由于每次重启的时候都要进入chroot环境,所以将一些命令写成脚本
-
#!/bin/bash
-
mount -v --bind /dev $LFS/dev
-
mount -vt devpts devpts $LFS/dev/pts
-
mount -vt tmpfs shm $LFS/dev/shm
-
mount -vt proc proc $LFS/proc
-
mount -vt sysfs sysfs $LFS/sys
-
-
chroot "$LFS" /tools/bin/env -i \
-
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
-
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
-
/tools/bin/bash --login +h
2.建立必要的符号链接
-
ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
-
ln -sv /tools/bin/perl /usr/bin
-
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
-
ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
-
ln -sv bash /bin/sh
可见有些操作还是依赖于临时库的。
3.创建必要的文件
touch /etc/mtab #用于保存以挂载的文件系统列表
创建/etc/passwd:
-
cat > /etc/passwd << "EOF"
-
root:x:0:0:root:/root:/bin/bash
-
bin:x:1:1:bin:/dev/null:/bin/false
-
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
-
EOF
创建/etc/group:
-
cat > /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:
-
video:x:12:
-
utmp:x:13:
-
usb:x:14:
-
cdrom:x:15:
-
mail:x:34:
-
nogroup:x:99:
-
EOF
有了用户登录文件之后,就可以使用chroot环境的bash了。
root/:exec /tools/bin/bash --login +h
4.创建临时的登录信息保存文件:
-
touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
-
chgrp -v utmp /var/run/utmp /var/log/lastlog
-
chmod -v 664 /var/run/utmp /var/log/lastlog
5.安装内核头文件
-
make mrproper
-
-
make headers_check
-
make INSTALL_HDR_PATH=dest headers_install
-
find dest/include \( -name .install -o -name ..install.cmd \) -delete
-
-
cp -r dest/include/* /usr/include
这两步完成了,没有什么错误。
阅读(1149) | 评论(0) | 转发(0) |