LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 844|回复: 0

新手的LFS手记

[复制链接]
发表于 2008-10-20 00:00:25 | 显示全部楼层 |阅读模式
自己是个新手,玩linux加起来估计不足一个月,前一阵子当做了两遍LFS,一遍自动脚本,一遍手动。写一点心得,希望可以帮助比我还新的兄弟。我用的是x86_64架构的版本

从u盘启动livecd

我的方法是用原来的Fedora9向u盘安装grub。在Fedora下,我的u盘是sdb,大小1g,分了一个区

mke2fs -jv /dev/sdb1
tune2fs -c 0 -i 0 /dev/sdb1
mount /dev/sdb1 /mnt

grub-install --root-directory=/mnt /dev/sdb

上面这个grub-install命令在我的台式机上不好使,u口有点问题,但在笔记本电脑上没问题。在台式机上我换成了下面的命令

cp -r /boot/grub /mnt/
grub
>root (hd1,0)
>setup (hd1)
>quit

然后拷贝必要的文件到u盘

mkdir -pv /mnt/lfslivecd
cp /path/to/livecd/isofile.iso /mnt/lfslivecd
mkdir /livecd
mount -o loop /path/to/livecd/isofile.iso /livecd
cp /livecd/boot/isolinux/{linux64,initramfs_data64.cpio.gz} /mnt/lfslivecd/
umount /livecd
rmdir /livecd

vi /mnt/grub/grub.conf

开始编辑grub.conf文件吧,下边是我的grub.conf

default=0
timeout=30
title LFS Live CD
        root (hd0,0)
        kernel /lfslivecd/linux64 rw root=iso:/dev/disk/by-uuid/221c7501-64df-475e-a926-2d0c27476d15:/lfslivecd/lfslivecd-x86_64-6.3-r2160.iso rootfstype=ext3 TZ=CST+8 UTC=0 LANG=en_US.ISO-8859-1 rootdelay=20
        initrd /lfslivecd/initramfs_data64.cpio.gz

root(hd0,0)这一行大家依自己机器的情况写一下,我的机器从u盘启动跟从硬盘启动后硬盘的次序不一致,所以在fedora下安装grub时,u盘是hd1,而这里变成hd0了。
至于kernel的参数,TZ=CST+8 UTC=0 LANG=en_US.ISO-8859-1设置时区为中国标准时间CST,我的BOIS时间是本地赶时间,所以设置UTC=0,语言设置为en_US.ISO-8859-1,这些可以不设置,然后进入live系统后在提示下设置也可以。
rootdelay=20是等u盘读取用的,u盘较慢,所以要多等一会,如果是硬盘启就不用这个参数了。
那个root=iso:/dev/disk/by-uuid/221c7501-64df-475e-a926-2d0c27476d15:/lfslivecd/lfslivecd-x86_64-6.3-r2160.iso中的by-uuid后面的221c7501-64df-475e-a926-2d0c27476d15是我u盘分区的uuid,你可以用blkid来查看u盘分区的uuid,这个命令会列出所有已挂载的分区的uuid,从中找到u盘的那个弄过去就行了。

然后就按着手册一步步来吧,按下Ctrl+Alt+F2另开一个控制台,输入lynx命令就可以查看手册了,然后再按Ctrl+Alt+F1回去输入命令。

具体步骤我就不详细与了,按手册来就行了,高手们也已经写了不少好帖。

注意就是那些patch,如果手册上没写这步要打patch就不要打,打了反而可能不行。在第做完一步后,可以把这步用到的build目录删除,原代码目录可以保留后面重用,不过手册好像建议一并删除,后面用到了再重新从解压一份(我就这么干的),以免因为源代码被有意无意的修改而使后面的步骤失败。

我在手动做LFS时没有从u盘启动,而是借用了fedora装的grub从fedora分区下的iso文件启动,grub.conf和u盘启动差不多,就是root改成了fedora的boot分区,那个iso文件路径中的uuid也改成了iso文件所在分区的uuid而已。rootdelay=20参数可以去掉了。而放到u盘lfslivecd目录中的文件也改到fedora的boot分区中去了(iso文件不必放过去,只要grub.conf中把路径设置对了就行了)。

这时rootdelay=20参数可以去掉了,但我加了另个一个参数,resume=/dev/xxx。
这个参数中的/dev/xxx是一个swap分区(不能太小)。加了这个参数后,如果做LFS的过程中要中断一下,只要输入 hibernate 命令让它休眠就行了,下次livecd启动后恢复到上次的工作状态,就跟没有中断一样。注意的是用到的那个swap分区要在第一次进入后挂载上,方法手册里有讲。并且在中断的过程中,那个swap分区不能被其它的系统使用和修改。
这个resume参数在u盘启动时不知道好不好用,我没试,但livecd的文档中好像说,在hibernate之前,应该把所有的u盘拿掉,如果真是这样的话,u盘启动时这个方法恐怕不好使了。

这些内容是手册里没有的(但livecd的文档中有),手册里有的我就不写了,我一菜鸟,写了也只能是纯抄手册。

还有我在编译vim时迷惑了一下,因为手册上说把vim和vim-lang两个包解压到同一个目录,我一开始没理解过来,不过解压完知道了,两个压缩包的目录名是一样的,而不是vimxx和vimxx-lang这样不一样的名字。


就这些吧,祝大家LFS愉快。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表