重走LFS之路:(七) 基础系统编译准备

    xiaoxiao2024-03-21  129

    重走LFS之路:(七) 基础系统编译准备

    (题图来自: techradar.com)

    准备虚拟内核文件系统

    建立系统挂载目录

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

    创建初始设备节点

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

    挂载并填充设备目录

    sudo mount -v bind /dev $LFS/dev

    挂载虚拟内核文件系统

    mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620mount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/sysmount -vt tmpfs tmpfs $LFS/run

    建立一个符号链接

    if [ -h $LFS/dev/shm ]; thenmkdir -pv $LFS/$(readlink $LFS/dev/shm)fi

    这时候就可以chroot到lfs的工具环境里面来进行基础系统的编译,但是在这之前需要先在$LFS中建立root目录,然后再chroot进去编译。

    进入chroot环境

    sudo chroot $LFS /tools/bin/env -i \HOME=/root \TERM=”$TERM \PS1=’${debian_chroot:+($debian_chroot)}\[\033[01;31m\][\A]\[\033[01;33m\]\u\[\033[00m\]@\[\033[01;32m\]\h:\[\033[01;34m\]\w\[\033[00m\]$  \PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \/tools/bin/bash login +h

    建立必要目录、符号链接与文件

    mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}install -dv -m 0750 /rootinstall -dv -m 1777 /tmp /var/tmpmkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}mkdir -v /usr/libexecmkdir -pv /usr/{,local/}share/man/man{1..8}case $(uname -m) inx86_64) ln -sv lib /lib64ln -sv lib /usr/lib64ln -sv lib /usr/local/lib64 ;;esacmkdir -v /var/{log,mail,spool}ln -sv /run /var/runln -sv /run/lock /var/lockmkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}

    建立基本文件和符号链接

    ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /binln -sv /tools/bin/perl /usr/binln -sv /tools/lib/libgcc_s.so{,.1} /usr/libln -sv /tools/lib/libstdc++.so{,.6} /usr/libsed s/tools/usr/’ /tools/lib/libstdc++.la > /usr/lib/libstdc++.laln -sv bash /bin/shln -sv /proc/self/mounts /etc/mtab

    创建用户存储文件passwd

    cat > /etc/passwd << EOFroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/dev/null:/bin/falsedaemon:x:6:6:Daemon User:/dev/null:/bin/falsemessagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/falsenobody:x:99:99:Unprivileged User:/dev/null:/bin/falseEOF

    创建用户组文件group

    cat > /etc/group << EOFroot:x:0:bin:x:1:daemonsys:x:2:kmem:x:3:tape:x:4:tty: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:adm:x:16:messagebus:x:18:systemd-journal:x:23:input:x:24:mail:x:34:nogroup:x:99:users:x:999:EOF

    这时候可以把用户名位置那讨厌的“I have no name!”去掉了

    exec /tools/bin/bash login +h

    用户名成功变身root

    再建立一些必要的日志文件,就可以进行系统编译啦

    touch /var/log/{btmp,lastlog,wtmp}chgrp -v utmp /var/log/lastlogchmod -v 664 /var/log/lastlogchmod -v 600 /var/log/btmp 原文发布时间:2015-04-10 本文来自云栖合作伙伴“linux中国” 相关资源:敏捷开发V1.0.pptx
    最新回复(0)