天天看点

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

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

(题图来自: techradar.com)

<a target="_blank"></a>

建立系统挂载目录

<code>mkdir -pv $lfs/{dev,proc,sys,run}</code>

创建初始设备节点

<code>sudo mknod -m 600 $lfs/dev/console c 5 1</code>

<code>sudo mknod -m 666 $lfs/dev/null c 1 3</code>

挂载并填充设备目录

<code>sudo mount -v –bind /dev $lfs/dev</code>

挂载虚拟内核文件系统

<code>mount -vt devpts devpts $lfs/dev/pts -o gid=5,mode=620</code>

<code>mount -vt proc proc $lfs/proc</code>

<code>mount -vt sysfs sysfs $lfs/sys</code>

<code>mount -vt tmpfs tmpfs $lfs/run</code>

建立一个符号链接

<code>if [ -h $lfs/dev/shm ]; then</code>

<code>mkdir -pv $lfs/$(readlink $lfs/dev/shm)</code>

<code>fi</code>

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

<code>sudo chroot “$lfs” /tools/bin/env -i \</code>

<code>home=/root \</code>

<code>term=”$term” \</code>

<code>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\]$ ‘ \</code>

<code>path=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \</code>

<code>/tools/bin/bash –login +h</code>

<code>mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}</code>

<code>mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}</code>

<code>install -dv -m 0750 /root</code>

<code>install -dv -m 1777 /tmp /var/tmp</code>

<code>mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}</code>

<code>mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}</code>

<code>mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}</code>

<code>mkdir -v /usr/libexec</code>

<code>mkdir -pv /usr/{,local/}share/man/man{1..8}</code>

<code>case $(uname -m) in</code>

<code>x86_64) ln -sv lib /lib64</code>

<code>ln -sv lib /usr/lib64</code>

<code>ln -sv lib /usr/local/lib64 ;;</code>

<code>esac</code>

<code>mkdir -v /var/{log,mail,spool}</code>

<code>ln -sv /run /var/run</code>

<code>ln -sv /run/lock /var/lock</code>

<code>mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</code>

建立基本文件和符号链接

<code>ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin</code>

<code>ln -sv /tools/bin/perl /usr/bin</code>

<code>ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib</code>

<code>ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib</code>

<code>sed ‘s/tools/usr/’ /tools/lib/libstdc++.la &gt; /usr/lib/libstdc++.la</code>

<code>ln -sv bash /bin/sh</code>

<code></code>

<code>ln -sv /proc/self/mounts /etc/mtab</code>

创建用户存储文件passwd

<code>cat &gt; /etc/passwd &lt;&lt; “eof”</code>

<code>root:x:0:0:root:/root:/bin/bash</code>

<code>bin:x:1:1:bin:/dev/null:/bin/false</code>

<code>daemon:x:6:6:daemon user:/dev/null:/bin/false</code>

<code>messagebus:x:18:18:d-bus message daemon user:/var/run/dbus:/bin/false</code>

<code>nobody:x:99:99:unprivileged user:/dev/null:/bin/false</code>

<code>eof</code>

创建用户组文件group

<code>cat &gt; /etc/group &lt;&lt; “eof”</code>

<code>root:x:0:</code>

<code>bin:x:1:daemon</code>

<code>sys:x:2:</code>

<code>kmem:x:3:</code>

<code>tape:x:4:</code>

<code>tty:x:5:</code>

<code>daemon:x:6:</code>

<code>floppy:x:7:</code>

<code>disk:x:8:</code>

<code>lp:x:9:</code>

<code>dialout:x:10:</code>

<code>audio:x:11:</code>

<code>video:x:12:</code>

<code>utmp:x:13:</code>

<code>usb:x:14:</code>

<code>cdrom:x:15:</code>

<code>adm:x:16:</code>

<code>messagebus:x:18:</code>

<code>systemd-journal:x:23:</code>

<code>input:x:24:</code>

<code>mail:x:34:</code>

<code>nogroup:x:99:</code>

<code>users:x:999:</code>

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

<code>exec /tools/bin/bash –login +h</code>

用户名成功变身root

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

<code>touch /var/log/{btmp,lastlog,wtmp}</code>

<code>chgrp -v utmp /var/log/lastlog</code>

<code>chmod -v 664 /var/log/lastlog</code>

<code>chmod -v 600 /var/log/btmp</code>

原文发布时间:2015-04-10

本文来自云栖合作伙伴“linux中国”

继续阅读