/********************************************************************* * Author : Samson * Date : 04/27/2015 * Test platform: * gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 * GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu) * *******************************************************************/
进行LFS实操的版本选择的是LFS 7.7,有关文档及应该下载的源码包的列表等可以下面地址中下载到:
http://www.linuxfromscratch.org/lfs/downloads/stable/, 其中的wget-list文件中的内容为下载的包的地址,LFS-BOOK-7.7.pdf是LFS操作的一步一步的操作及注意事项。
其中,磁盘的布局方式为:
[email protected]:/home/ufo# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 45G 0 disk
├─sda1 8:1 0 43.1G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 1.9G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 15.5G 0 part /mnt/lfs
└─sdb2 8:18 0 4.5G 0 part
sr0 11:0 1 222M 0 rom /media/cdrom0
//查看宿主机的fstab配置即可看到宿主机使用的是sda硬盘,即第一块硬盘
[email protected]:/home/ufo# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use ‘blkid‘ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=a22e5a2c-9642-40ec-8ff8-15563b649944 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=8ea7c2a2-3d4b-4bc8-ab49-0724190fba8d none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
//使用blkid查看每个分区的UUID,以和上面的fstab中的UUID进行对应,以找到对应的磁盘分区。
[email protected]:/home/ufo# blkid
/dev/sda5: UUID="8ea7c2a2-3d4b-4bc8-ab49-0724190fba8d" TYPE="swap"
/dev/sda1: UUID="a22e5a2c-9642-40ec-8ff8-15563b649944" TYPE="ext4"
/dev/sdb1: UUID="81f51ac1-1e1c-4238-82fa-8ef65d6f7fa2" TYPE="ext4"
/dev/sdb2: UUID="1c603624-94f8-4dfd-bfe9-31a4f5857b94" TYPE="swap"
/dev/sr0: LABEL="Debian 7.8.0 amd64 1" TYPE="iso9660"
其中,由以上命令可以看出,sda主要是用于宿主机的,我们将在sdb(即第二块硬盘)中进行LFS环境的搭建。选择sdb1为LFS根分区,sdb2为LFS的swap空间,通过上面的blkid可知(执行此条命令的时候已经分析好了硬盘空间,并已经进行了格式化)。
以下命令都在宿主机进行:
//使用宿主机Debian中的内核4个文件自制到lfs环境的boot下
cp /boot/config-3.2.0-4-amd64 /boot/initrd.img-3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64 /boot/System.map-3.2.0-4-amd64 /mnt/lfs/boot/
//update-grub is a stub for running grub-mkconfig -o /boot/grub/grub.cfg to generate a grub2 config file.
//在宿主机环境下执行以下命令进行基于宿主系统的grub项的更新,即添加定制的LFS到grub菜单中。
update-grub2
//修改LFS环境的fstab(建议在chroot的环境下修改)
vim /etc/fstab
# Begin /etc/fstab
# file system mount-point type options dump fsck
# order
/dev/sda1 / ext4 defaults 1 1
/dev/sda2 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
然后重启,即可进入到grub选择菜单,选择LFS相关项即可启动LFS系统。
163