lfs学习笔记第3页:https://www.cnblogs.com/renren-study-notes/p/10199965.html
第7.2章节
进入sources目录,解压lfs-bootscripts
进入lfs-bootscripts目录,并运行安装。
第7.6.4章节
cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock
UTC=1
# Set this to any options you might need to give to hwclock,
# such as machine hardware clock type for Alphas.
CLOCKPARAMS=
# End /etc/sysconfig/clock EOF
如果电脑上面是多系统,并且有windows系统,要把UTC设置为0,也就是不使用系统硬件时间作为系统时间。如果没有windows系统不需要更改。
第7.6.2章节与第7.6.4章节 运行命令即可
因为大多数使用的都是美国键盘,所以第7.6.5章节内容可忽略
第7.7章节
运行以下命令获取Glibc支持的所有语言环境的列表:
locale -a
结果:
C
en_US.utf8
POSIX
zh_CN.utf8
这里我们选择en_US.utf8
以下是对对所选择的语言的测试
LC_ALL=<locale name> locale charmap
LC_ALL=<locale name> locale language
LC_ALL=<locale name> locale charmap
LC_ALL=<locale name> locale int_curr_symbol
LC_ALL=<locale name> locale int_prefix
确定正确的区域设置后,创建 /etc/profile
文件:
cat > /etc/profile << "EOF"
# Begin /etc/profile
export LANG=en_US.utf8 (这里替换为所选择的语言环境)
# End /etc/profile
EOF
第7.4章节
找出分配给哪个网络设备的名称:
cat /etc/udev/rules.d/70-persistent-net.rules
记住这个命令输出的网络设备的名字,下一章节要使用。
第7.5.1章节
cd /etc/sysconfig/
cat > ifconfig.eth0 << "EOF" (这里的eth0修改为上一章节记录的网络设备的名字)
ONBOOT=yes
IFACE=eth0 (这里的eth0修改为上一章节记录的网络设备的名字)
SERVICE=ipv4-static
IP=192.168.1.2
GATEWAY=192.168.1.1 PREFIX=24 BROADCAST=192.168.1.255 EOF
第7.5.2章节
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
domain <Your Domain Name>
nameserver 8.8.8.8
nameserver 8.8.4.4
# End /etc/resolv.conf EOF
这里我们使用谷歌的dns
第7.5.3章节
echo "<lfs>" > /etc/hostname
这里的lfs替换为你所设置的主机名字
第8.2章节
更改为lfs所创建的分区到相应位置即可(这个文件是配置lfs开机自动挂载的分区)
cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
/dev/sda9 /boot ext4 defaults 1 1
/dev/sda10 / ext4 defaults 1 1
/dev/sda11 /home ext4 defaults 1 1
/dev/sda12 swap swap pri=1 0 0
proc /proc proc nosuid,noexec,nodev 0 0
sysfs /sys sysfs nosuid,noexec,nodev 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /run tmpfs defaults 0 0 devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 # End /etc/fstab EOF
八.编译安装内核,设置grub引导
第8.3章节
配置编译安装linux内核
首先进入sources目录
cd /sources
解压内核文件压缩包
tar -xvf linux-4.18.5.tar.xz
进入内核包目录
cd linux-4.18.5
准备编译
make mrproper
设置默认内核配置状态
make defconfig
设置内核
make menuconfig
找到以下选项
Device Drivers --->
Generic Driver Options --->
[ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
[*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
Kernel hacking --->
Choose kernel unwinder (Frame pointer unwinder) ---> [CONFIG_UNWINDER_FRAME_POINTER]
上下键翻页找到Device Drivers --->回车进入
上下键翻页找到Generic Driver Options --->回车进入
按字母n键去掉Support for uevent helper对话框的×符号
按y键在Maintain a devtmpfs filesystem to mount at /dev对话框打上×符号
左右键找到exit,exit两次
上下键翻页找到Kernel hacking --->回车进入
上下键翻页找到Choose kernel unwinder--->回车进入
向下选择UNWINDER_FRAME_POINTER回车确定
左右键选择save,两次回车确定保存 选择两次exit退出到终端。
如果您的主机硬件使用UEFI,请自行添加此项设置
Processor type and features --->
[*] EFI stub support [CONFIG_EFI_STUB]
编译内核映像和模块
make -j(n) n为可设置同时运行的任务数量,不设置参数默认为无限(不要轻易尝试)
本章节警告中的内容大意
如果为boot单独分了区,请挂载boot分区在进行下步操作
复制一些内核的启动文件到boot分区
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-4.18.5-lfs-8.3
cp -iv System.map /boot/System.map-4.18.5
cp -iv .config /boot/config-4.18.5
安装Linux内核的文档:
install -d /usr/share/doc/linux-4.18.5
cp -r Documentation/* /usr/share/doc/linux-4.18.5
配置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
第8.4章节
安装配置grub引导
我选择的是用manjaro安装的grub引导进入lfs系统所以未安装grub软件包
这里介绍给lfs安装配置grub引导的过程
在第6.62章节已经安装了grub软件
这里只介绍配置
1.安装grub引导到MBR
grub-install /dev/sda
2.创建grub配置文件
cat > /boot/grub/grub.cfg << "EOF"
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod ext2
set root=(hd0,2) 括号里面更改为你所安装lfs的分区或boot分区 例如/dev/sda2为(hd0,2)
menuentry "GNU/Linux, Linux 4.18.5-lfs-8.3" {
linux /boot/vmlinuz-4.18.5-lfs-8.3 root=/dev/sda2 ro(这里的/dev/sda2更改为你所安装lfs的分区号 例如/dev/sda2) } EOF
如果boot单独分区,则把/boot删除。
多系统引导文件示例:
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
menuentry "GNU/Linux, Linux 4.18.5-lfs-8.3" {
insmod ext2
set root=(hd0,5)
linux /vmlinuz-4.18.5-lfs-8.3 root=/dev/sda6 ro
}
menuentry 'Manjaro Linux'{ insmod ext2 set root='hd0,msdos9' linux /vmlinuz-4.19-x86_64 root=/dev/sda10 ro initrd /intel-ucode.img /initramfs-4.19-x86_64.img } menuentry 'Windows 7 (on /dev/sda1)'{ insmod ntfs set root='hd0,msdos1' chainloader +1 }
第9.1章节
设置系统版本及版本号运行本章节命令即可
echo 8.3 > /etc/lfs-release
cat > /etc/lsb-release << "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="8.3"
DISTRIB_CODENAME="<your name here>"(括号里改为自己起的名字)
DISTRIB_DESCRIPTION="Linux From Scratch" EOF
第9.3章节
本章节中的提及的软件包,将在其他笔记单独记录
运行下面的命令,退出chroot,卸载lfs的分区
exit
umount -v $LFS/dev/pts
umount -v $LFS/dev
umount -v $LFS/run
umount -v $LFS/proc
umount -v $LFS/sys umount -v $LFS umount -v $LFS/usr umount -v $LFS/home umount -v $LFS
如果需要本机的grub引导lfs则在root用户下运行以下命令创建lfs的引导项
非manjaro系统需要安装os-prober软件包,并挂载lfs的分区,在运行下面命令,添加lfs的启动项
grub-mkconfig -o /boot/grub/grub.cfg
确定添加完lfs引导项后,重启机器进入lfs选项,即可进入lfs操作系统。
blfs学习笔记:https://www.cnblogs.com/renren-study-notes/p/10214504.html