LinuxSir.cn,穿越时空的Linuxsir!

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

LiveCD是这么产生的

[复制链接]
 楼主| 发表于 2007-8-7 22:40:34 | 显示全部楼层
尝试了liveUSB(USB的分区格式是vfat)

方法:
假设USB所在分区挂载点是/mnt/usb,所在分区为hd1(grub中的),且只有一个vfat的分区(已经激活)
mkdir -p /mnt/usb/boot/grub
cp /usr/lib/grub/i386-pc/{stage1,stage2,fat_stage1_5} /mnt/usb/boot/grub
grub
grub>root (hd1,0)
grub>setup (hd1)
grub>quit
然后查看/dev/disk/by-uuid,获取USB中的分区的uuid(????)

cat > /mnt/usb/boot/grub/menu.lst <<"EOF"
default 0
timeout 5

title lfs(kernel 2.6.22.1)
  kernel /boot/vmlinuz-2.6.22.1 vga=788 root=UUID=???? rootdelay=10
  initrd /boot/initrd.img-2.6.22.1
EOF

把ISO中的/boot/目录下的 vmlinuz-2.6.22.1 和 initrd.img-2.6.22.1 复制到 /mnt/usb/boot目录下
把ISO中的root.sqfs复制到/mnt/usb目录下

这个USB现在已经可以启动了,启动后的效果与用光盘启动的效果相同
回复 支持 反对

使用道具 举报

发表于 2007-8-14 16:18:30 | 显示全部楼层
再加入一个 安装脚本就是自己的发行版了,精华之!

Server 兄有个比较简单的 installer,见 http://www.linuxsir.cn/bbs/showthread.php?t=310171
回复 支持 反对

使用道具 举报

发表于 2007-11-29 10:40:34 | 显示全部楼层
按照春风兄弟文章制作了livecd后,放在vmware上测试,结果无法正常启动呀,提示错误如附件所示,请教这是什么问题呢?我的initrd没做好吗?可是我的mkinitrd的步骤和春风兄的方法没什么两样呢

可能春风兄脚本里面少了个busybox的安装,自己加上去了
make CONFIG_PREFIX=/busybox install

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2007-11-29 19:01:39 | 显示全部楼层
上面的问题已经解决,原来是busybox所依赖的lib文件在制作initrd的时候没有考全,导致sh无法正常执行init脚本

现在碰到新问题
modprobe iso9660失败导致mount cdrom失败,问题解决中
回复 支持 反对

使用道具 举报

发表于 2007-11-29 19:07:38 | 显示全部楼层
把 iso9660 的支持编入内核不是更直接?
回复 支持 反对

使用道具 举报

发表于 2007-11-29 19:51:30 | 显示全部楼层
modprobe iso9660失败的原因是没有insmod isofs

所以在init脚本的最前面把需要的三个fs大模块全部插入了
    insmod isofs
    insmod aufs
    insmod squashfs

新问题
脚本执行到/sbin/udevd --daemon的时候报错如下
......
udevd[285]: lookup _group: specifiled group 'video' unknown
udevd[285]: lookup _group: specifiled group 'disk' unknown
udevd[285]: lookup _group: specifiled group 'type' unknown
udevd[285]: lookup _group: specifiled group 'cdrom' unknown

因为对udevd不熟,问题还待解决
回复 支持 反对

使用道具 举报

发表于 2007-11-29 19:56:06 | 显示全部楼层
modprobe iso9660失败的原因是没有insmod isofs(按照春风兄的内核config文件编译的内核isofs只是作为模块支持。。。)

所以在init脚本的最前面把需要的三个fs大模块全部插入了
    insmod isofs
    insmod aufs
    insmod squashfs

新问题
脚本执行到/sbin/udevd --daemon的时候报错如下
......
udevd[285]: lookup _group: specifiled group 'video' unknown
udevd[285]: lookup _group: specifiled group 'disk' unknown
udevd[285]: lookup _group: specifiled group 'type' unknown
udevd[285]: lookup _group: specifiled group 'cdrom' unknown

导致后面mount cdrom失败,,,
因为对udevd不熟,问题还待解决
回复 支持 反对

使用道具 举报

发表于 2007-11-30 16:59:46 | 显示全部楼层
LiveCD总算是制作成功了


上述的问题,直接替换了自己之前编译的内核就没问题了。。。。估计是和kernel的config有关系

看来还有一些细节的位置需要调整。。使用initrd启动和不使用initrd启动,似乎系统环境不太统一呢
回复 支持 反对

使用道具 举报

发表于 2007-11-30 17:12:53 | 显示全部楼层
不过我的livecd启动后为什么根目录的目录结构怪怪的。。。每个目录都有多了一个_1

如根目录下有etc目录,同时多了一个etc_1目录,奇怪呀
-------------------------------------------------------------------------------------------
问题已经解决,原来是mksquashfs的时候,目的文件已经存在而导致
回复 支持 反对

使用道具 举报

发表于 2009-2-18 15:48:43 | 显示全部楼层
1、75-cd-aliases-generator.rules
75-persistent-net-generator.rules
的作用是创建一些静态的规则(写文件),在livecd上没有意义,在liveUSB上,会引起问题(因为每台机器的网卡的MAC都不同,直接导致的后果是每在一台新的机器上运行后,网卡的编号是递增的,比如在A机上启动后,网卡的名字是eth0,可是,到另外一台机器上启动后,网卡是eth1,....,另外,CDROM的名字也有这样的情况发生)

原来是这样。。。 之前我把系统tar到另一台虚拟机上以后认不出eth0,重编了内核也不行,原来是因为他变成了eth1。。。把ifconfig.eth0改名成ifconfig.eth1以后就可以了。。。
⊙﹏⊙b
回复 支持 反对

使用道具 举报

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

本版积分规则

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