您的位置:首页 > 运维架构 > Linux

制作LFS(LinuxFromScratch),并u盘启动

2015-01-22 23:30 351 查看
此为避坑指南

详细教程看项目地址。
这次buid lfs的用时为3天。

build lfs需要非常好的耐心。
项目地址:http://www.linuxfromscratch.org/

版本为7.6
用来制作lfs的系统是centos-6.5-minimal (运行在Mac OSX上的VirtualBox中的虚拟机上)

(用其它如gentoo或ubuntu或许会更好,我只是懒下载)
首先把要求安装的软件装上http://www.linuxfromscratch.org/lfs/view/stable/prologue/hostreqs.html

没特别说明的话,一般可以比指定的版本高一点
跟着教程一句句执行命令

建议全程复制粘贴,当然需要看清每句都做了什么。
建议不要随便改其中的命令,如挂载点跟着使用/mnt/lfs
从wget-list上下载所有源码包及补丁,下载后一定要验证md5,http://www.linuxfromscratch.org/lfs/view/stable/chapter03/introduction.html
然后会用系统(centos)的工具链来buid出一个临时的工具链

build临时工具链的时候可以选择用
make -j8
来加速编译,j后面跟cpu数x2,centos有4个cpu,

但后面真正buid lfs的时候别使用速
上面下载中包括不少补丁,在build临时工具链的时候可以打上,但注意一点是有时候打了补丁后,

会因为需要的额外库文件找不到而编译失败,这时候可以不打补丁再编译一次。
后面build lfs的时候会有些测试会没通过,这因不同系统不同软件版本而异,不要太纠结。
编译linux内核的时候可以用
make -jX
加速下。
最后要放到u盘上启动的话,首先是指u盘格式化,分区,假设只要一个分区,在centos显示为/dev/sdb1

则可以这样在u盘上装grub:

mkdir -v /mnt/target

mount /dev/sdb1 /mnt/target

grub-install --root-directory=/mnt/target /dev/sdb
然后在grub.cfg上的设置就是:

set root=(hd0,1)

linux /boot/vmlinuz..... root=/dev/sda1 rootdelay=8

上面只是重点的地方,其它照教程写,这里为sda是因为用u盘启动时u盘会是sda,

虽然现在普遍为scsi设备,用的都是sdx,但grub规定了上面那里root=(hd0,1)需要为hdx。
注意上面的rootdelay=8必需,否则启动vfs可能会报错不能挂载root filesystem。
还要注意/etc/fstab里对应修改。
然后就可以把u盘插到电脑上在bios中选择u盘启动了。
假如不幸启动后没有系统选择界面而是一个grub>命令行,可以这样做,

假设电脑上没连接其它硬盘等hdd设备,只有u盘:

root (hd0,0)

kernel /boot/vmlinux-...... root=/dev/sda1 rootdelay=8

boot

上面的vmlinux-...忘记了可以按tab,假如root (hd0,0)正是u盘的root的话,应该会有文件名提示的。

还有一点可能会有疑惑的地方,

上面的grub.cfg中(hd0,1)表示第一个磁盘上的第一个分区,

下面这里grub命令行(hd0,0)也表示第一个磁盘的第一个分区,

对,很奇葩的设定,一个从1开始数,一个从0开始数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息