一步一步打造自己的Linux--LFS6.3安装过程(三)
一步一步打造自己的Linux--LFS6.3安装过程(五)

一步一步打造自己的Linux--LFS6.3安装过程(四)

獨立的圓 posted @ 2008年2月09日 04:41 in Linux with tags LFS , 8377 阅读

 本站文章已轉移,敬請移步:http://www.xxb.me/ ,謝謝!

(注:本文于2月28日修改)

III. 构建 LFS 系统

挂载虚拟内核文件系统

为虚拟内核文件系统建立挂载目录:

  1. $ mkdir -pv $LFS/{dev,proc,sys}

创建初始设备节点:

  1. $ mknod -m 600 $LFS/dev/console c 5 1
  2. $ mknod -m 666 $LFS/dev/null c 1 3

挂载并填充 /dev 目录:

  1. $ mount -v --bind /dev $LFS/dev

现在挂载虚拟内核文件系统:

  1. $ mount -vt devpts devpts $LFS/dev/pts
  2. $ mount -vt tmpfs shm $LFS/dev/shm
  3. $ mount -vt proc proc $LFS/proc
  4. $ mount -vt sysfs sysfs $LFS/sys

为了方便使用源码包,将lfs-sources里面所有源码包复制到$LFS/sources目录中:

  1. $ cp -v /lfs-sources/* $LFS/sources/

进入 Chroot 环境,以便不受主系统的影响来制作目标系统:

  1. $ 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

此时 bash 提示符会显示“I have no name! :/#”因为 /etc/passwd 还没有创建。

如果此时重启了,需要再执行一次上面带*号的命令

创建系统目录结构:

  1. $ mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt}
  2. $ mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
  3. $ install -dv -m 0750 /root
  4. $ install -dv -m 1777 /tmp /var/tmp
  5. $ mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
  6. $ mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
  7. $ mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}
  8. $ mkdir -pv /usr/{,local/}share/man/man{1..8}
  9. $ for dir in /usr /usr/local; do
  10.  ln -sv share/{man,doc,info} $dir
  11.  done
  12. $ mkdir -v /var/{lock,log,mail,run,spool}
  13. $ mkdir -pv /var/{opt,cache,lib/{misc,locate},local}

创建必需的文件与符号连接,在目标系统的编译过程中,部分编译程序会用绝对路径来寻找命令或文件:

  1. $ ln -sv /tools/bin/{bash,cat,echo,grep,pwd,stty} /bin
  2. $ ln -sv /tools/bin/perl /usr/bin
  3. $ ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
  4. $ ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
  5. $ ln -sv bash /bin/sh

为用到/etc/mtab的程序创建一个空文件:

  1. $ touch /etc/mtab

创建root用户和必要的组

  1. $ cat > /etc/passwd << "EOF"
  2.  root:x:0:0:root:/root:/bin/bash
  3.  nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
  4.  EOF

root 的真正密码将在后面设置("x"在这里只是一个占位符)。

  1. $ cat > /etc/group << "EOF"
  2.  root:x:0:
  3.  bin:x:1:
  4.  sys:x:2:
  5.  kmem:x:3:
  6.  tty:x:4:
  7.  tape:x:5:
  8.  daemon:x:6:
  9.  floppy:x:7:
  10.  disk:x:8:
  11.  lp:x:9:
  12.  dialout:x:10:
  13.  audio:x:11:
  14.  video:x:12:
  15.  utmp:x:13:
  16.  usb:x:14:
  17.  cdrom:x:15:
  18.  mail:x:34:
  19.  nogroup:x:99:
  20.  EOF

启动新的shell,驱除"I have no name!"提示符:

  1. $ exec /tools/bin/bash --login +h

初始化日志文件,并设置适当的权限:

  1. $ touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
  2. $ chgrp -v utmp /var/run/utmp /var/log/lastlog
  3. $ chmod -v 664 /var/run/utmp /var/log/lastlog

到目前为止,创建目标系统的准备工作已基本完成,下面将开始目标系统的软件包安装。

(未完待续)


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter