LinuxSir.cn,穿越时空的Linuxsir!

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

LFS6.1硬盘安装完全征服

[复制链接]
发表于 2006-7-1 08:37:39 | 显示全部楼层
Post by Sandr0
但我觉得,如果按我的思路去做,工作量非常小,就只需要编译内核加入一个ext文件系统支持(甚至可以用ntfs文件系统,反正只要能只读就可以了),然后将init.c里面的mountlfscd()稍微改一下就可以了。

严格来讲,其实这种方式并非真正硬盘安装,套用 Knoppix 的术语,这是 PMI (Poor Man's Installation) 方式安装

昨天我尝试将LiveCD 里的 SquashFS 文件及 boot 目录下的文件拷到一个分区,然後改由 GRUB 来启动,原理是可以了,但 init 拒绝加载根目录,原因就是这个 mountlfscd() 搞鬼!它要检查 LiveCD 的 volume name (如 lfslivecd-x86-6.2pre4 之类) 以确认 LiveCD 是否正常加载,否则 return 0 退出。这里告诉我们两件事:

1. 不要指望 LFS 团队回覆幻想老大的请求了,他们是有目的地加入这个检查项目的,这亦反影他们造这 LiveCD 的意图并非为"安装"而设

2. 如果不打算自己重新写个 linuxrc 另做一个 initrd 的话,理论上应该可以将 init.c 里面的mountlfscd() 检查项目屏蔽或者打最後面的 return 0 改成 return 1 来欺编系统,不管有没有找到 LiveCD 的 volume name 也继续去加载根目录

可是我改了以後不知道怎样进行下一步去制作它专用的 initramfs_data_cpio.gz,单纯在 initramfs 目录下 make 是不行的,希望各位可以给点指引
回复 支持 反对

使用道具 举报

发表于 2006-7-1 20:45:38 | 显示全部楼层
Post by d00m3d
  
1. 不要指望 LFS 团队回覆幻想老大的请求了,他们是有目的地加入这个检查项目的,这亦反影他们造这 LiveCD 的意图并非为"安装"而设计

我想也许是为了方便搜索 LiveCD 而这样设计的,不是因为阻止安装而设计。

我没发邮件问,因为我觉得这个问题没必要继续,刻录一张CD太容易了,为了这个小事去大动干戈,不值得。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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