jiangtao9999 发表于 2008-5-20 23:01:34

ML 2.1 Beta2 的 LiveUSB 阶段成功汇报。上传了测试用的 mgc.squ

上传了 mgc.squ 文件,不用自己做压缩包了。不过 grub 还需要借用 ML 的,把 /boot 复制过去,删掉里面的内核文件就行了。
http://www.12321.org/files/mgc.squ

这个镜像文件是我测试用的,没有针对发布进行清理。所以里面有几个操作记录,另外没有设置自动登录 X 。
需要手动用 root 登录,密码是 magic 。

===========================================================
重新作了一个用 busybox 的 initrd ,可以启动系统,不过关机时依然会尝试 umount 在 initrd 里面挂载的东西,不知道怎么解决这个问题……
http://www.12321.org/files/initrd-2.6.25.4-smp.img.busybox.gz

=====================旧内容分割==========================

我不打算上传 squashfs 的 mgc 镜像文件了,第一他很大,第二目前还是有问题,没有实际的使用意义。
下面的文字写的很乱,看不懂别问我,直接解压缩 initrd-2.6.25.4-smp.img.live.gz,再用 cpio 解压缩出来文件自己看。

想尝试的,可以安装一个 2.1 beta2 ,最好干净安装,之后升级内核到 2.6.25.4 ,别忘了还有他的模块。都装上。
当然还要需要一个 U 盘。 ML 很大的,1G U 盘是必须的。我用的是 4G 。
把 /boot 目录整个拷贝到 U 盘根目录上。
外加 http://www.12321.org/files/initrd-2.6.25.4-smp.img.live.gz 这个 initrd 镜像文件,下载放过去。

修改 U 盘 boot/grub/menu.lst ,注意 FAT32 不支持连接。只保留里面的 2.6.25.4 内核的启动项。 把 root=XXX 改为 =/dev/sda1 ,因为 U 盘在我这里会识别为 sda1 我想这是一个确定的地点,毕竟 USB 启动,肯定要被识别为一个串行设备。再删掉不需要的 kernel 参数。initrd 改为刚才下载的 initrd 文件。这两个文件注意位置。
之后下载 http://www.12321.org/files/mksquashfs 到 U 盘。
运行 grub :
root (hdX,0) 设定 grub 的 root 分区,X 是 U 盘的顺序,挨着硬盘继续排列的。
setup (hdX) 安装引导程序,不要尝试装在分区引导块上,没必要……
quit 退出完成

准备 ML 安装盘,重新启动到 ML 安装盘,用应急模式进入。这样做是为了减少 ML 在运行时建立的一些临时文件。

启动应急模式后,新建两个目录(现在在内存里,可以写入,但关机数据丢失)。一个挂载 U 盘,一个挂载 ML 的 / 目录。之后修改 ML 的 /etc/fstab 删掉 SWAP 的挂载项。
cd 到 ML 挂载后的目录 ../usbdisk/mksquashfs XXX XXX XXX XXX ../usbdisk/mgc.squ
其中 ../usbdisk 就是你的 U 盘挂载地址 XXX XXX XXX 是 ML 根目录里面的子目录。这么打是因为 ML 多了一个莫名其妙的空目录 chroot ,我们要把这个目录略过去。所以 XX XXX XXX 里面不包括这个目录,别的目录都要包含。这样就会在 U 盘上生成一个 mgc.squ 文件。注意这需要很长时间,建议去睡个觉……
当然在他们的上级目录 usbdisk/mksquashfs mgcroot usbdisk/mgc.squ 也可以,只要来源目录只有一个,他就会过滤掉一级目录,但这样会加入没用的文件夹。大家自己决定吧。我用上面是怕生成的镜像目录乱掉,所以用的第一个。

之后就可以尝试启动了。

http://www.12321.org/files/init
是 initrd 镜像文件里面的运行脚本,凑合写的,所以没有清理,主要是为了能启动就行,目的还是实现功能,以后在按规矩修改的好点。

LiveUSB 用的 initrd 比普通的 initrd 多了几个文件。
其中 4 个 .ko 文件,分别是 aufs 的模块,三个 sqlzma 的模块,位于 lib 目录中。以及一个计算机上面的 mount 命令重命名为 mount.1 ,在 bin 目录中,这个命令是因为内核用的 nash 的 mount 命令不支持挂在 loop 设备,需要用他挂载 mgc.squ。

目前已知问题就是这个 LiveUSB 在关机时,会尝试卸载 initrd 中挂载的 3 个位置,一个是 mgc.squ 的挂载,一个是 tmpfs 挂载的,一个应该是 aufs 挂载的位置。这会导致关机缓慢,但是确实能关机。别的问题还没测试。

当然还要注意,这个 ML 是不会保存数据的,虽然可以写入但因为可以写入的文件位置在内存里,关机就没了。

http://www.12321.org/files/unsquashfs 可以解压缩 squashfs 文件。sqlzma 当个压缩软件还不错,能压缩,能挂载。还能解压缩~而且还是 LZMA 的压缩规范,也就是 7-zip 用的格式。



这样的实现完全是从 ML 系统内提取的。initrd 也是从 ML 的 initrd 文件修改而来。除了一个 init 脚本,其余完全脱离外部资源。

[ 本帖最后由 jiangtao9999 于 2008-5-26 13:15 编辑 ]

npcomet 发表于 2008-5-21 01:48:49

顶你个肺

haulm 发表于 2008-5-21 04:14:59

wget http://www.12321.org/files/mksquashfs
--04:14:11--http://www.12321.org/files/mksquashfs
         => `mksquashfs'
正在解析主机 www.12321.org... 203.171.237.120
Connecting to www.12321.org|203.171.237.120|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 403 Forbidden
04:14:12 错误 403:Forbidden。

江涛的马甲 发表于 2008-5-21 10:25:01

原帖由 haulm 于 2008-5-21 04:14 发表 http://218.56.161.13/bbs/images/common/back.gif
wget http://www.12321.org/files/mksquashfs
--04:14:11--http://www.12321.org/files/mksquashfs
         => `mksquashfs'
正在解析主机 www.12321.org... 203.171.237.120
Connecting to www.12321 ...
ssh 上传上去的文件,默认在个人目录里,所以默认权限是 0600 。mv 保留权限。所以 apache 用的用户不可读……
已经修改了权限,应该可以下载了。

江涛的马甲 发表于 2008-5-21 10:33:16

刚发现,npc 和 haulm 都是夜行生物……:shock: 8O

npcomet 发表于 2008-5-21 10:54:42

:shock: :shock: :shock:

jiangtao9999 发表于 2008-5-21 23:37:17

http://www.12321.org/files/initrd-2.6.25.4-smp.img.busybox.gz
用这个 initrd 可以进入一个 sh 环境,基于 busybox 的环境。外加 udev 。
主要是测试硬件识别如何。

udevd 的效果还可以,虽然启动显示错误,但还是能用。

先在的问题就是暂时不敢确定这个脚本运行时没问题,给我感觉 udev 的识别速度有点慢……脚本运行的太快,怕 udev 还没识别出来就运行过去了。

busybox 太牛了,600K 实现 N多命令。
不过 ML 自带的 libc 怎么那么大捏…………

编译一个 uclibc ?还是用 -Os 重新编译 libc 呢……

jiangtao9999 发表于 2008-5-23 16:20:00

为什么关机总是要尝试 umount initrd 里面的东西捏……

jiangtao9999 发表于 2008-5-26 13:14:57

上传了 mgc.squ 文件,不用自己做压缩包了。不过 grub 还需要借用 ML 的,把 /boot 复制过去,删掉里面的内核文件就行了。
http://www.12321.org/files/mgc.squ

这个镜像文件是我测试用的,没有针对发布进行清理。所以里面有几个操作记录,另外没有设置自动登录 X 。
需要手动用 root 登录,密码是 magic 。
页: [1]
查看完整版本: ML 2.1 Beta2 的 LiveUSB 阶段成功汇报。上传了测试用的 mgc.squ