lfs(systemv版本)學習筆記-第4頁

lfs(systemv版本)學習筆記第3頁http://www.javashuo.com/article/p-nlhwuvjo-g.htmlhtml

第7.2章節

安裝lfs啓動腳本node

1.進入sources目錄,解壓並進入lfs-bootscripts包目錄linux

tar -xvf lfs-bootscripts-20180820.tar.bz2

cd lfs-bootscripts-20180820

2.參照書中說明安裝web

make install

3.返回sources目錄並刪除軟件包目錄shell

cd $LFS/sources/

rm -rf lfs-bootscripts-20180820

第7.4章節

管理設備windows

1.建立udev規則並查看輸出找到網卡設備名稱(name後面的輸出爲網卡設備名字)bash

bash /lib/udev/init-net-rules.sh

cat /etc/udev/rules.d/70-persistent-net.rules

2.找到重複設備並建立符號連接規則文件網絡

udevadm info -a -p /sys/class/video4linux/video0

cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"

# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \
    SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \
    SYMLINK+="tvtuner"

EOF

第7.5章節

網絡配置dom

1.建立網絡接口配置文件async

cd /etc/sysconfig/
cat > ifconfig.eth0 << "EOF"
ONBOOT=yes
IFACE=eth0
SERVICE=ipv4-static
IP=192.168.1.2
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255
EOF


這裏的etch0 更換爲上一章節查看的網卡設備名字

2.建立dns解析文件

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地址

3,配置系統主機名字

echo "<lfs>" > /etc/hostname

<lfs>更換爲主機名字

4.建立/etc/hosts文件

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

127.0.0.1 localhost
127.0.1.1 <FQDN> <HOSTNAME>
<192.168.1.1> <FQDN> <HOSTNAME> [alias1] [alias2 ...]
::1       localhost ip6-localhost ip6-loopback
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

# End /etc/hosts
EOF

第7.6章節

System V Bootscript使用和配置

1.配置Sysvinit

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

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc S

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600

# End /etc/inittab
EOF

2.配置系統時鐘

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.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.8章節

1.建立/etc/inputrc配置文件

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

第7.9章節

1.建立/etc/shells文件

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

/bin/sh
/bin/bash

# End /etc/shells
EOF

第8.2章節

1.更改成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

第8.3章節

配置編譯安裝linux內核

1.首先進入sources目錄

cd   /sources

2.解壓內核文件壓縮包

tar  -xvf linux-4.20.12.tar.xz

3.進入內核包目錄

cd linux-4.20.12

4.準備編譯

make mrproper

5.設置默認內核配置狀態

make defconfig

6.設置內核

make menuconfig

7.找到如下選項

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]

8.第一項設置以下

[ ] Support for uevent helper                                             │ │  
  │ │    [*] Maintain a devtmpfs filesystem to mount at /dev              │ │  
  │ │    [*]   Automount devtmpfs at /dev, after the kernel mounted the ro│ │  
  │ │    [*] Select only drivers that don't need compile-time external fir│ │  
  │ │    [*] Disable drivers features which enable custom firmware buildin│ │  
  │ │        Firmware loader  --->                                        │ │  
  │ │    [ ] Driver Core verbose debug messages                           │ │  
  │ │    [*] Managed device resources verbose debug messages              │ │  
  │ │    [ ] Test driver remove calls during probe (UNSTABLE)             │ │  
  │ │    < > Build kernel module to test asynchronous driver probing  

9.第二項設置以下

┌────^(-)─────────────────────────────────────────────────────────────┐ │  
  │ │    [ ] x86 instruction decoder selftest                             │ │  
  │ │        IO delay type (port 0x80 based port-IO delay [recommended])  │ │  
  │ │    [*] Debug boot parameters                                        │ │  
  │ │    [ ] CPA self-test code                                                                        │ │  
  │ │    [*] Allow gcc to uninline functions marked 'inline'              │ │  
  │ │    [ ] Debug low-level entry code                                   │ │  
  │ │    [ ] NMI Selftest                                                 │ │  
  │ │    [*] Debug the x86 FPU code                                       │ │  
  │ │    < > ATOM Punit debug driver                                      │ │  
  │ │        Choose kernel unwinder (Frame pointer unwinder)  --->

10.若是您的主機硬件使用UEFI,請自行添加此項設置

Processor type and features  --->
   [*]   EFI stub support  [CONFIG_EFI_STUB]

11.設置調整完保存退出便可

12.編譯內核映像和模塊

make -j8

13.安裝配置模塊

make modules_install

14.複製一些內核的啓動文件到boot分區

cp -iv arch/x86/boot/bzImage /boot/vmlinuz-4.20.12-lfs-8.4

cp -iv System.map /boot/System.map-4.20.12 cp -iv .config /boot/config-4.20.12

15.安裝Linux內核的文檔:

install -d /usr/share/doc/linux-4.20.12
cp -r Documentation/* /usr/share/doc/linux-4.20.12

16.配置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

17.返回sources目錄並刪除包目錄

cd $LFS/sources

rm -rf linux-4.20.12

第8.4章節

安裝配置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) } (若是boot單獨分區,則把這裏的/boot刪除。)
EOF

多系統引導文件示例:

cat > /boot/grub/grub.cfg << "EOF"
# 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
}   
EOF

第9.1章節

設置系統版本及版本號

echo 8.4 > /etc/lfs-release

cat > /etc/lsb-release << "EOF" DISTRIB_ID="Linux From Scratch" DISTRIB_RELEASE="8.4" 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

重啓進入lfs系統

reboot

附錄

若是須要本機的grub引導lfs則在root用戶下運行如下命令建立lfs的引導項

須要安裝os-prober軟件包,並掛載lfs的分區,在運行下面命令,添加lfs的啓動項

grub-mkconfig -o /boot/grub/grub.cfg

肯定添加完lfs引導項後,重啓機器進入lfs選項,便可進入lfs操做系統。

相關文章
相關標籤/搜索