LFS(四)

LFS(四)

0.前言

  通过第二小节,我们终于完成了lfs系统root用户的相关软件包的编译安装,接下来就是涉及到lfs系统的相关配置内容,比如Bootscripts、时间设置等内容

  首先退出logout

1
logout

  完成最后的设置,重新进入chroot环境

1
2
3
4
5
6
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
cd /sources
export LFS=/sources

  这里的作用只是和之前的作用进行一个分界,其实本质上没有意义(毕竟退出又重来了)

1.开机脚本设置

  LFS-Bootscripts-6.3是一组用于Linux系统启动时自动运行的脚本。这些脚本负责初始化系统和启动各种服务,例如启动网络、挂载文件系统、启动系统日志等任务。LFS-Bootscripts-6.3是针对LFS系统定制的,可以确保系统能够正确地启动并提供所需的服务

1
2
3
4
5
tar xvf $LFS/lfs-bootscripts-6.3.tar.bz2
cd lfs-bootscripts-6.3
make install
cd ..
rm -rf lfs-bootscripts-6.3

2.系统时间设置

1
2
3
4
5
cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock
UTC=1
# End /etc/sysconfig/clock
EOF

3.bash下的键盘功能键设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cat > /etc/inputrc << "EOF"
set horizontal-scroll-mode Off
set meta-flag On
set input-meta On
set convert-meta Off
set output-meta On
set bell-style none
"\eOd": backward-word
"\eOc": forward-word
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\eOH": beginning-of-line
"\eOF": end-of-line
"\e[H": beginning-of-line
"\e[F": end-of-line
EOF

4.Bash Shell启动文件设置

1
2
3
4
5
6
7
8
cat > /etc/profile << "EOF"
# Begin /etc/profile
export LANG=en_US.UTF-8
export INPUTRC=/etc/inputrc
alias ls="ls --color"
export PS1='\u:\w\$ '
# End /etc/profile
EOF

5.本地网络名设置

1
echo "HOSTNAME=mylinux" > /etc/sysconfig/network

6.hosts文件设置

1
2
3
4
5
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)
127.0.0.1 mylinux localhost
# End /etc/hosts (no network card version)
EOF

7.网络静态地址设置

  实现打开编辑,点击网络编辑器,选中NAT模式

  通过查看可以看到我们的网关ip为192.168.70.2,之后回到网络编辑器界面,点击DHCP设置

  可以看到开始IP地址和结束IP地址,前三位是一样的,最后一位是128和254,证明我可以选择的IP地址是XX.XX.XX.128——XX.XX.XX.254,中间任意选一个都可以,比如选择XX.XX.XX.230,接下来就进行相关的代码示范

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd /etc/sysconfig/network-devices
mkdir -v ifconfig.eth0
cat > ifconfig.eth0/ipv4 << "EOF"
ONBOOT=yes
SERVICE=ipv4-static
IP=192.168.70.230
GATEWAY=192.168.70.2
PREFIX=24
BROADCAST=192.168.70.255
EOF
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
nameserver 114.114.114.114
nameserver 114.114.114.114
# End /etc/resolv.conf
EOF

  (这里dns的编写运行忘记截图了,但是问题不大)

8. fstab的建立

  这里的磁盘名以及文件系统名需要根据实际情况修改,不过照着教程做的话不用做出修改

1
2
3
4
5
6
7
8
9
10
11
12
13
cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
/dev/hdd2 / xfs defaults 1 1
/dev/hdd1 swap swap pri=1 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
shm /dev/shm tmpfs defaults 0 0
# End /etc/fstab
EOF

9.安装内核

1
2
3
4
5
cd /sources
tar xvf $LFS/linux-2.6.22.5.tar.bz2
cd linux-2.6.22.5
make mrproper
make menuconfig

  上下键移动选中Device Drivers->Networking device support->Ethernet (10 or 100Mbit)后下上选中AMD PCnet32 PCI support,这里移动要对应位置敲击键盘的“m”键即可

  接下来退回(选择exit)选中Device Drivers->Sound->Advanced Linux Sound Architecture

  敲击键盘“m”键,即可出现子选项,然后选中PCI devices加入(Creative) Ensoniq AudioPCI 1371/1373的支持,编译成模块即可(下上选中(Creative) Ensoniq AudioPCI 1371/1373,然后敲击键盘的“m”键即可

  然后回去选中File Systems->XFS filesystem support加入XFS的支持,可以采用编译到内核来避免未用initrd脚本来加载模块而导致启动失败(下上选中XFS filesystem support,然后敲击键盘的“y”键即可

1
2
3
4
5
6
7
make
make modules_install
cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5
cp -v System.map /boot/System.map-2.6.22.5
cp -v .config /boot/config-2.6.22.5
install -d /usr/share/doc/linux-2.6.22.5
cp -r Documentation/* /usr/share/doc/linux-2.6.22.5

10.安装Grub

1
2
3
root (hd0,1)
setup (hd0)
quit
1
2
3
4
5
6
7
8
9
10
11
12
13
cat > /boot/grub/menu.lst << "EOF"
# Begin /boot/grub/menu.lst
# By default boot the first menu entry.
default 0
# Allow 30 seconds before booting the default.
timeout 30
# Use prettier colors.
color green/black light-green/black
# The first entry is for LFS.
title LFS 6.3
root (hd0,1)
kernel /boot/lfskernel-2.6.22.5 root=/dev/hda2
EOF
1
2
3
mkdir -v /etc/grub
ln -sv /boot/grub/menu.lst /etc/grub
logout

11.进入LFS系统

1
reboot

  用户名是root,密码是之前定义的

  至此,一个初级的LFS就已经完成


LFS(四)
https://one-null-pointer.github.io/2023/06/15/Linux运维——LFS4/
Author
liaoyue
Posted on
June 15, 2023
传送口