/*********************************************************************
* 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操作的一步一步的操作及注意事项。
其中,磁盘的布局方式为:
root@ufo:/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
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硬盘,即第一块硬盘
root@ufo:/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
# /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进行对应,以找到对应的磁盘分区。
root@ufo:/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"
/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可知(执行此条命令的时候已经分析好了硬盘空间,并已经进行了格式化)。
UUID与磁盘的对应关系查看:
ls /dev/disk/by-uuid/ -l
lrwxrwxrwx 1 root root 10 8月 16 09:46 250b1d96-6c30-455f-bc9b-1cc31dc9b957 -> ../../sda6
lrwxrwxrwx 1 root root 10 8月 16 09:46 29c8d688-ac41-4dd6-971d-da21d7be20c6 -> ../../sda7
lrwxrwxrwx 1 root root 10 8月 16 09:46 76c825c3-1f61-463f-a229-f2294e605eb3 -> ../../sda5
lrwxrwxrwx 1 root root 10 8月 16 09:46 7CDEA21BDEA1CDA8 -> ../../sda3
lrwxrwxrwx 1 root root 10 8月 16 09:46 A4A29DF2A29DC966 -> ../../sda2
lrwxrwxrwx 1 root root 10 8月 16 09:46 AC661A3E661A0A2A -> ../../sda1
UUID与磁盘的对应关系查看:
ls /dev/disk/by-uuid/ -l
lrwxrwxrwx 1 root root 10 8月 16 09:46 250b1d96-6c30-455f-bc9b-1cc31dc9b957 -> ../../sda6
lrwxrwxrwx 1 root root 10 8月 16 09:46 29c8d688-ac41-4dd6-971d-da21d7be20c6 -> ../../sda7
lrwxrwxrwx 1 root root 10 8月 16 09:46 76c825c3-1f61-463f-a229-f2294e605eb3 -> ../../sda5
lrwxrwxrwx 1 root root 10 8月 16 09:46 7CDEA21BDEA1CDA8 -> ../../sda3
lrwxrwxrwx 1 root root 10 8月 16 09:46 A4A29DF2A29DC966 -> ../../sda2
lrwxrwxrwx 1 root root 10 8月 16 09:46 AC661A3E661A0A2A -> ../../sda1
以下命令都在宿主机进行:
//使用宿主机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
# 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