跟着我来一起编译lfs(五) LFS系统配置

这章主要是对lfs的系统进行配置,这样大家就会更了解Linux配置文件的位置和配置内容,下面我们开始。


配置系统主机名称

echo "MYOS" > /etc/hostname

输出到/etc/hostname就可以了

自定义 /etc/hosts 文件

cat > /etc/hosts << "EOF"
# Begin /etc/hosts

127.0.0.1 <HOSTNAME.example.org> <HOSTNAME> localhost [alias1] [alias2] ...
::1       <HOSTNAME.example.org> <HOSTNAME> localhost [alias1] [alias2] ...

# End /etc/hosts
EOF

设备和模块管理
配置系统时间
设置本地时间

cat > /etc/adjtime << "EOF"
0.0 0 0.0
0
LOCAL
EOF

配置 Linux 控制台
/etc/vconsole.conf为配置文件
里面每一行内容格式为:VARIABLE=”value”
KEYMAP
此变量指定了键盘的按键映射表。如未设置,默认为 us。
KEYMAP_TOGGLE
此变量指定配置第二个切换键盘映射,默认不设置。
FONT
此变量指定虚拟控制台的字体。
FONT_MAP
此变量指定要使用的控制台映射。
FONT_UNIMAP
此变量指定 unicode 字体映射。
你也可以使用localectl命令来更改这些值
展示及个性化的设置这边就不多讨论了。

系统区域设置,字符集设置
/etc/locale.conf为配置文件

locale -a

查看系统支持的字符集
中国,我们就用中文

cat > /etc/locale.conf << "EOF"
LANG=zh_CN.utf8
EOF

你也可以使用localectl命令来更改这些值

键盘布局
一般我们用的都是普通的设置,如果有个性化,可以自行修改

cat > /etc/inputrc << "EOF"
# Begin /etc/inputrc
# Modified by Chris Lynn <roryo@roryo.dynup.net>

# Allow the command prompt to wrap to the next line
set horizontal-scroll-mode Off

# Enable 8bit input
set meta-flag On
set input-meta On

# Turns off 8th bit stripping
set convert-meta Off

# Keep the 8th bit for display
set output-meta On

# none, visible or audible
set bell-style none

# All of the following map the escape sequence of the value
# contained in the 1st argument to the readline specific functions
"\eOd": backward-word
"\eOc": forward-word

# for linux console
"\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

# for xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# for Konsole
"\e[H": beginning-of-line
"\e[F": end-of-line

# End /etc/inputrc
EOF

当前系统所有可用 shell 的列表文件设置

cat > /etc/shells << "EOF"
# Begin /etc/shells

/bin/sh
/bin/bash

# End /etc/shells
EOF

这里主要是一些特殊的命令需要这个列表来进行判断权限,否则不允许执行

Systemd 的用法与配置
/etc/systemd/system.conf为配置文件

创建 /etc/fstab 文件
这个文件的作用是让其它程序确定存储设备的默认挂载点、挂载参数和检查信息

cat > /etc/fstab << "EOF"
# Begin /etc/fstab

# file system  mount-point  type     options             dump  fsck
#                                                              order

/dev/sda1     /            ext4    defaults            1     1

# End /etc/fstab
EOF

Linux内核安装

cd sources/
tar xf linux-4.7.2.tar
cd linux-4.7.2
make mrproper
make menuconfig

打开页面后直接esc选择save

make
make modules_install
cp -v arch/x86/boot/bzImage /boot/vmlinuz-4.7.2-lfs-7.10-systemd
cp -v System.map /boot/System.map-4.7.2
cp -v .config /boot/config-4.7.2
install -d /usr/share/doc/linux-4.7.2
cp -r Documentation/* /usr/share/doc/linux-4.7.2

配置 Linux 模块加载顺序

install -v -m755 -d /etc/modprobe.d
cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf

install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true

# End /etc/modprobe.d/usb.conf
EOF

使用 GRUB 设置启动过程
GRUB 命名约定,GRUB 对于硬盘和分区自有一套命名规则(hdN,M),其中 N 是硬盘数,M 是分区号。硬盘数 N 从 0 开始计数,分区数需要区别对待——主分区从 1 开始计数而扩展分区从 5 开始计数
执行下面的命令请看清楚,找到你创建lfs的硬盘,我是用的是sdb1,所以下面命令的参数是/dev/sda

grub-install /dev/sda
cat > /boot/grub/grub.cfg << "EOF"
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5

insmod ext2
set root=(hd0,1)

menuentry "GNU/Linux, Linux 4.7.2-lfs-7.10-systemd" {
        linux   /boot/vmlinuz-4.7.2-lfs-7.10-systemd root=/dev/sda1 ro
}
EOF

添加一些系统版本信息

cat > /etc/os-release << "EOF"
NAME="Linux From Scratch"
VERSION="7.10-systemd"
ID=lfs
PRETTY_NAME="Linux From Scratch 7.10-systemd"
VERSION_CODENAME="<your name here>"
EOF
echo 7.10-systemd > /etc/lfs-release
cat > /etc/lsb-release << "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="7.10-systemd"
DISTRIB_CODENAME="<your name here>"
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF

好了,到这里恭喜你~~~~~系统做好了,一个自制的系统诞生了。想想就激动了,下面开始,最激动人心的时候

关闭虚拟机,开始启动,上图

启动,用户名root 密码没有直接回车~~~

好了~~终于进了~~

下一章,我们再继续配置一下这个新鲜的系统。

Leave a Reply

Your email address will not be published.