LinuxSir.cn,穿越时空的Linuxsir!

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

关于硬盘安装的一点特别想法

[复制链接]
发表于 2006-5-19 21:30:26 | 显示全部楼层
我一直在为initrd限制在4M内完成任务想解决的办法呢,现在有底了.
回复 支持 反对

使用道具 举报

发表于 2006-5-20 20:52:15 | 显示全部楼层
估计不好人看不懂.顶一下
回复 支持 反对

使用道具 举报

发表于 2006-5-20 21:18:34 | 显示全部楼层
有啥好顶的?。。有问题就问,不过最好自己研究一下再发问。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-20 21:50:38 | 显示全部楼层
一天没来就这么多人回帖呀!感激ing~~谢谢各位大大~~
其实那个硬盘安装的精华帖我反复看过好多遍了,基本指导思想是自己修改initrd。我的ISO是6.1.1-4,initrd里面的init文件是/init,是个elf,没有脚本,我也不知道它都做了些什么,不过好像无法硬盘启动的原因是/dev/hdd not ready——启动时显示的信息就这么说的,说找不到LFS LiveCD,目前我觉得它是访问了我的物理光驱,而里面当然没有盘。这应该不是一句mount就能解决的,因为不是没有挂载,只是挂载的对象不对,本该是iso,它却自行挂载了物理光驱,应该先umount再mount吧?我还不怎么知道用nash脚本实现这个,另外initrd里并没有/bin/nash,这有关系吗?系统启动后是不是从别处哪里给initrd里那些空目录挂上了好多东西?

顺便,被迫研究iso9660还颇有些心得,了解了点其格式具体实现,结果发现费老大劲查偏移量找到的Boot Catalog和引导记录之类原来就是打开iso文件就能看见的boot.cat和/boot/isolinux/isolinux.bin,真的晕死!!看来真的思想复杂了~~甚至尝试用debug跟踪进isolinux.bin内看它做了些什么……再寒自己一个——半天才留意到还有一个isolinux.cfg,google了半天后终于确认,我苦苦寻觅的东西其实就是这个文本文件中的几行字……要命的是这几行字还都是我早就尝试失败过的……我都要哭了我!!
回复 支持 反对

使用道具 举报

发表于 2006-5-20 22:04:13 | 显示全部楼层
真要命,看得很辛苦。。。也摸不着思路

烦请楼主整理一下,用点列的方式说出问题好吗?
回复 支持 反对

使用道具 举报

发表于 2006-5-20 22:15:25 | 显示全部楼层
别把 Linux 想的太复杂了,Linux 其实很简单的,真的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-20 23:07:31 | 显示全部楼层
呵呵,d00m3d大侠请不必太过费神,其实我自己把问题说清楚也恐怕有点难度~~总之目的就一个,就是千方百计把livecd从硬盘上启动起来,并且要做到,启动后的环境和从CDROM启动没什么区别。修改initrd对于初学者有点太高难度,而且恐怕一个不小心,就后患无穷,否则那个精华帖里怎么到最后也没给出一个具体的实施细则呢?其实我发帖的目的并不是想问出什么来(要是本版有人能给出一个完美解决方案的话,在那个帖里早就给了),只是把我的经历和大家分享一下,并且至今我仍在努力实验中,争取最后能给本版一个满意的答复,算来本版开混的见面礼^_^敬请各位继续收看连载~~好戏在后头~~

最新进展:已经确定,livecd启动时确实把我的MATSUSHITA物理光驱(日货~~但不是买的呀,是同学送我的,我自己决不会买!)当作了/dev/hdd,并自作主张去读它,当然读不到。输出信息有一条大意“找不到名为lfslivecd-x86-6.1.1-4的光盘”,我觉得也许它靠卷标来寻找安装盘?于是乎把iso解压到的那个硬盘驱动器卷标改成这个,然而FAT32卷标只能支持到“lfslivecd-x”这么长,硬着头皮试,失败。接下来我打算再尝试一下换成用ext3分区试一试,如果再失败,也许只能靠建立/linuxrc乐……不过有点担心,挂载光驱和读光驱的程序应该都在/init里,那么我用/linuxrc脚本先修改挂载状态再调用/init可能会又被它改了回来,会不起作用?要是用自己的代码完全取代/init,又无法准确模拟它的行为,毕竟/init做了什么都不知道。唉,路漫漫其修远兮,吾将上下而求索~~

另外关于“本末倒置”的问题,窃以为,正如你所说“LiveCD的其中一个主要作用是为没有host或者host未能满足建立LFS环境的机器提供一个良好的编译条件”,我有host,但host(很可能)未能满足提供一个良好的编译条件,比如可能缺少某个工具,然而这点我可能要到编译了半夜之后才发现(我的host偏偏是被称为“恶梦”的Ubuntu)。所以,作为初学者我还是宁可使用肯定好使的livecd,哪怕有host,也要让host去满足它,这对初学者的信心很重要,也可以减少一些可能影响成功的旁枝末节的可能性。对吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-20 23:49:22 | 显示全部楼层
哈哈,有好消息,也有坏消息,先听哪个涅?~

还是先说好的吧!~我在BIOS中把物理光驱关闭了,结果启动livecd的信息终于变了样,大概意思是说没有在任何驱动器中找到名为“lfslivecd-x86-6.1.1-4”的CD。看来果然像是靠卷标来寻找livecd的,就是说我只要把livecd解压到硬盘分区根目录,并将这个分区的卷标设为“lfslivecd-x86-6.1.1-4”,也许就行呢!

接下来坏消息:刚刚知道居然ext3只支持16byte的卷标!!就是“lfslivecd-x86-6.”这么长,看来无法胜任了。

到底什么样的文件系统能支持“lfslivecd-x86-6.1.1-4”这么长的卷标,还能被both Grub and linux kernel访问呢?NTFS行吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-21 00:24:36 | 显示全部楼层
又一点进展:实在找不到支持那么长卷标的FS,恨死了LFS官方,为什么要设定如此之长的卷标?——对了,可以我自己来让它变短呀!觉得这个卷标应该是由initramfs_data_cpio.gz中的/init程序进行查找的,于是用十六进制编辑器在/init中查找"lfslivecd-x86-6.1.1-4\0"这个串,果然找到一处。将其修改为"lfs\0ivecd-x86-6.1.1-4\0",就是把第四个字母‘l'改成了0x00,这样,搜索的卷标就变成了"lfs",哈哈~把卷标设为lfs,重起,用grub引导~成功!找到了livecd,然而,进行了一段就kernel panic了,信息是not syncing:VFS:Unable to mount root fs on unknown-block(3,5),还不太明白,探索中~
回复 支持 反对

使用道具 举报

发表于 2006-5-21 01:19:21 | 显示全部楼层
你用的文件系统LFS-LiveCD不支持吧.
回复 支持 反对

使用道具 举报

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

本版积分规则

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