LinuxSir.cn,穿越时空的Linuxsir!

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

LFS6.1硬盘安装完全征服

[复制链接]
发表于 2006-2-20 11:19:16 | 显示全部楼层 |阅读模式
从公社的一个安装debian的文章受到的启发,想和各位交流一下:)
公社的原文:
debian硬盘安装及中文化完全征服
http://www.linuxfans.org/nuke/mo ... wtopic&t=123292

liveCD,可以作为安装系统盘,上面肯定有了一个可以bootable的filesystem。现在我如果把liveCD解压到硬盘上,不就可以从硬盘安装了嘛?
1.引导程序必须是grub,因为grub可以识别分区,识别文件系统。
2.至于把liveCD.iso解压到那个分区,就要看liveCD里面的东东了。如果liveCD里面的fs中没有链接文件(ln -s产生),可以解压到fat分区,不然就得到ext2分区。我知道这个是否对,反正我在fat分区解压.tar.gz文件时,ln命令总是失败。

来个简单的过程:
1。mount -t ext2 /dev/hda9  /mnt/liveCD
2.把liveCD.iso解压到/mnt/liveCD,这样就在/mnt/liveCD/下面建立一个完整的rootfs.这时如果chroot /mnt/liveCD应该都没问题。
3。找到内核镜像的位置,我没有用过liveCD,不知道位置,就假设在/boot/vmlinux吧。
4。reboot ,进入grub输入参数:
kernel (hd0,8)/boot/vmlinuz rw root=/dev/hda9 noinitrd  回车
boot 回车

这样是不是就可以了呢?看了debian的帖子临时想到的,原理应该没问题,晚上回去试试
发表于 2006-2-20 11:36:27 | 显示全部楼层
还不行,因为LFS的LiveCD用squashfs压缩过,你可能要用squashfs再挂上LiveCD的映像才行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 11:44:43 | 显示全部楼层
那个iso不能直接提取出来?
通常Iso是多大,刻录的光盘也就多大。iso应该只归档不压缩的吧,不然刻录之前一解压,那一张光盘岂不存不下了?
回复 支持 反对

使用道具 举报

发表于 2006-2-20 11:51:06 | 显示全部楼层
当然不是,一张Knoppix的iso才700MB,由于是cloop压缩的,解压后差不多有2G了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 12:03:50 | 显示全部楼层
关于Iso问题,就不说了。
这样:

mount -t iso9600  /dev/cdrom /mnt/cdrom
mount -t ext2 /dev/hda9 /mnt/liveCD
cp -R  /mnt/cdrom/*  /mnt/liveCD/

不管几个G,总能够拷贝到硬盘上了吧
回复 支持 反对

使用道具 举报

发表于 2006-2-20 12:48:28 | 显示全部楼层
还未懂我的意思吗?

你完成 mount -t iso9600 /dev/cdrom /mnt/cdrom 得到了什么?

你要把 squashfs 压缩文件解压才能 cp -R 呀!
回复 支持 反对

使用道具 举报

发表于 2006-2-20 12:56:26 | 显示全部楼层
拷贝到硬盘上问题不大,但能不能启动是一个问题. 我以前试过制作LiveUSB,本想把光盘内容搬过去应该差不多了,但启动脚本对设备的初始化有个顺序问题,在内核启动的时候没来得及加载USB驱动,结果娄试不爽,后来看到网上的一些文章说可以把LiveCD时的内核解压,然后修改脚本,但改了之后依然不走效,可能我太菜了,只能照搬别人写的步骤
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 13:24:14 | 显示全部楼层
to d00m3d:
   我手上没有liveCD,所以你的意思只能猜测了。你是说liveCD刻录到CD上,里面仍然是个压缩包,而不是分散的文件系统。即使这样也很容易解决,就按照你说的用squashfs解压。squashfs程序肯定在光盘上,不然这个光盘自己引导时,不还是需要解压squashfs包嘛?

mount -t iso9600 /dev/cdrom /mnt/cdrom
mount -t ext2 /dev/hda9 /mnt/liveCD
cp -R /mnt/cdrom/* /mnt/liveCD/
在/mnt/liveCD/目录下面肯定可以找到squashfs程序,这样理解对吗?
squashfs 那个压缩包
这次可以得到liveCD的硬盘版了吧?

里面有个奇怪的问题就是那个squashfs,这个程序不会是elf格式的吧,应该是bin格式的。
因为用光盘引导,是没有内核的,squashfs是第一个运行的程序。bin格式的程序不知道在linux下是否可以执行?
总之我觉得解压一个压缩包,不管是什么格式的,linux搞得他肯定没有问题!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 13:30:20 | 显示全部楼层

可以解决的

Post by jecky.z
拷贝到硬盘上问题不大,但能不能启动是一个问题. 我以前试过制作LiveUSB,本想把光盘内容搬过去应该差不多了,但启动脚本对设备的初始化有个顺序问题,在内核启动的时候没来得及加载USB驱动,结果娄试不爽,后来看到网上的一些文章说可以把LiveCD时的内核解压,然后修改脚本,但改了之后依然不走效,可能我太菜了,只能照搬别人写的步骤


我提出硬盘安装,是没有CD-RW的考虑。其实主机上是有一个现成的linux和grub的。

你说的问题是内核造成的,liveCD上的内核编译时,没有把对USB的支持编译进去。rootfs所在的磁盘分区和设备的支持程序必须全部编译到内核中,不然就得使用initrd才可以。
解决也很容易:
在你的linux下重新编译个内核(USB支持嵌进去),然后用这个内核替换liveCD上的那个。

你的硬盘版的liveCD有多大啊?给我个参考。3x
回复 支持 反对

使用道具 举报

发表于 2006-2-20 13:33:01 | 显示全部楼层
我手上没有liveCD,所以你的意思只能猜测了。你是说liveCD刻录到CD上,里面仍然是个压缩包,而不是分散的文件系统。
正解
即使这样也很容易解决,就按照你说的用squashfs解压。squashfs程序肯定在光盘上,不然这个光盘自己引导时,不还是需要解压squashfs包嘛?
squashfs不是一个程序,是一个内核补丁,打了这个补丁的内核才能用mount 来挂载 squashfs 的压缩映像文件,解压后就是你要的东西了
回复 支持 反对

使用道具 举报

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

本版积分规则

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