LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: good02xaut

LFS6.1硬盘安装完全征服

[复制链接]
发表于 2006-2-20 16:13:13 | 显示全部楼层
好的,我再做一次,反正也很快!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 16:22:16 | 显示全部楼层
好,步骤挤详细点哈。
3x
回复 支持 反对

使用道具 举报

发表于 2006-2-20 17:20:25 | 显示全部楼层
几位兄弟时间真多啊。:)。

1。LiveCD 放入 硬盘启动是肯定可以的。不过需要改造。

2。有没有必要把 liveCD 放入硬盘?有没有考虑过其他解决方案?比如用 qemu 这类模拟器,模拟一个linux出来,这样岂不是更好?一边用原系统,一边编译。Vmware 也不错,把数据放在真实硬盘中就可以了,就是速度也许稍微慢一点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 17:56:27 | 显示全部楼层
这样做可不仅仅是针对LFS的liveCD!
总结一下,所有的linux基于CD安装的,都可以使用硬盘安装了。
从中寻求一种通用的方法,而不仅仅为了LFS。

虚拟机不好,一个是慢,安装慢,而且也干不了啥事同时。出了硬件问题,不好找原因。
回复 支持 反对

使用道具 举报

发表于 2006-2-20 18:09:28 | 显示全部楼层
没错,通用当然好。但是不同的 livecd 的结构是不同的,你是都研究,还是挑选个别的研究?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 20:45:00 | 显示全部楼层
一个搞定了,其他的可以应该就不难了。思路应该一样的。
1。光盘引导
2。启动光盘里面的isolinux
3。挂在光盘里面的那个做好的rootfs.
4。在这个Linux下面开始安装程序
任何基于光盘的Linux都是安装这个过程的,猜的没错的话。

用lfslivecd-x86-6.2-pre3.iso试了一下遇到了问题。
1.拷贝lfslivecd-x86-6.2-pre3.iso\BOOT\ISOLINUX\linux 到/boot/livecd/
2.在grub.conf 添加一个新项,指定参数kernel /boot/livecd/linux  root=/dev/hda9 noinitrd
注:hda9是ext2分区,已建立一个文件系统,曾经在2.6.12内核下正常运行。和那个liveCD中的root.sqfs没任何关系。
3。reboot
内核启动了,哈哈。
不过怎么半途终止:
uniform CDROM driver Revision:3.20
死机。奇怪,为什么会down在这个地方呢?

更改bios设置,把对光驱的支持屏蔽调。内核再次启动,依然发现了光驱(好像是跳过bios的)。继续死到那个地方了。

期待lvjinhua的安装步骤。。。
回复 支持 反对

使用道具 举报

发表于 2006-2-20 22:06:18 | 显示全部楼层
。为啥你要指定 noinitrd 这个参数?。。不太明白。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-21 09:20:36 | 显示全部楼层
因为我没有找到initrd映象文件。
在/boot/isolinux下面有个initramfs_data_cpio.gz,这个文件是ramfs,和从前的映象不一样了。
需不需要initrd,取决于配置内核时的模块的选择。不支持initrd,配置内核时就可以不要ramdisk了,那样还可以节省内存(默认4M)。

后来我又试了很多参数,包括支持initrd,更改root,init等,都还是那个问题。
系统在Uniform CDROM driver Revision:3.20后,干什么了呢?
在等待一个什么东西呢?
这是应该和rootfs没有关系,因为系统如果找不到root会提示panic错误的
回复 支持 反对

使用道具 举报

发表于 2006-2-21 15:55:20 | 显示全部楼层
昨天整了一下,这中间出了太多的问题,不过最终还是成功了。
请听我慢慢道来。
回复 支持 反对

使用道具 举报

发表于 2006-2-21 16:35:24 | 显示全部楼层
注:我使用的版本为:LFS-LiveCD6.2-pre2
首先,内核得支持squashfs文件系统格式,如果不支持得重新编译,否则不能挂载 LFS-LiveCD中的光盘镜像文件(。root。sqfs)(前边已经有人提到了),当然其Live-CD中的内核本身是带上的。

然后,将CD中的 .root.sqfs 挂载到一个目录下,将其里面边的内容完全拷贝到另一个单独的分区中(我的是/mnt/hda7),使用 cp -a 就行,还可以保留文件的各种属性。
这样拷贝过去的文件系统默认缺少 /tmp ,/proc ,/boot ,将其补充完整。并修改 /tmp的权限: chmod a+w /tmp

接着,得重新编译内核以便让其起动时支持你的文件系统类型。因为LiveCD将Ext2,Ext3等均编译为模块的形式。因此,将其愿有不完整的内核源码树删除,并重新解压内核到其/usr/src目录下:
rm -rf /mnt/hda7/usr/src/*
tar xpf lfs-sources/linux-2.6.12.5.tar.bz2

配置内核(make menuconfig),将Ext2,Ext3选择为编译到内核中,再增加选择 -> Pseudo filesystems->/dev file system support (OBSOLETE)和 Automatically mount at boot (这两项好像不选也行)
(注意,我编译内核的时候使用 chroot /mnt/hda7 切换了环境)

将编译得到的内核复制到 /mnt/hda7/boot 下,在以前系统的GRUB启动项中加入相关语句:
title lfs-livecd6.1
    root (hd0,6)
    kernel /boot/linux root=/dev/hda7 rw vga=791

注意:kernel项一定得选择rw,不然后最后得到的文件系统“只读”,好像在LFS的启动脚本中没有将根文件系统重新挂载为“读写”状态。

接着,修改 /mnt/hda7/etc/fstab 文件以达到我们的要求。

大概就这样,我就是在这个环境中写的这些内容。不过还是有点小问题,好像有些启动脚本没有启动,并且重启有错误,还得再研究研究。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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