|
|
第 1 帖 | |
|
|
标题: archlinux 2009.02硬盘安装DIY 我从2006年开始使用linux(ubuntu),一直觉得很方便。前些天不小心把linux弄崩了,一直没管。最近刚好有人推荐了archlinux,在windows里面弄了个virtualbox试用了下,简洁干净,感觉真是不错。马上在机器上装。我不喜欢光盘安装,总是怕把光驱读坏了。所以先搜了些硬盘安装的办法,结果全部失败了,呵呵。没办法,那就光盘吧,好不容易把盘子刻好了放进去,出来个No emulation Booting,就停住了。接着搜,有人推荐用u盘安装,弄了下,发现我的主板居然不支持从u盘引导!NND!
所有的方法都搞不定,但是真的挺喜欢这个系统的。想那就只能DIY了。反正以前一直对linux启动的机制不了解,趁这个机会来了解一下也不错。恩,那说做就做。折腾了一下就搞定了,其实挺简单的,得益于arch清晰简洁的启动流程,呵呵。不过说实话,arch的安装体验做的还不是很成熟,搜索的时候看到很多人也问这个,就把他写出来,和大家交流下。 说下我的水平。我用过c,java,python,但是以前对脚本和linux启动一点都不懂,所以文章应该是入门级水平,大家多多帮助哦~ 开始吧。 既然arch启动以后能够进到一个livecd的状态,那么它应该完成了一个完整的linux启动过程。linux的启动有两阶段,第一是由grub把控制权交给指定的kernel和initrd文件,先加载一个临时的小系统;第二,再通过kernel和initrd的努力把完整的linux系统启动出来。kernel是内核文件,initrd是个临时的小文件系统,它被加载进入内存,里面存着一些引导出真正的系统需要的代码和工具。光盘里面等价于initrd的是archiso_pata.img文件,我自然要从它下手。 找个可以用的linux系统,因为需要里面的工具。我的做法是用我virtualbox里面的那个arch,当然如果有个linux当然更好。从光盘里面把boot文件夹解压出来。 1.解压archiso_pata.img文件 archiso_pata.img文件在光盘的/boot文件夹里面,取得它,然后操作步骤是: 代码:
成功以后,initrdHack文件夹里面有这一个基本的文件系统的目录结构。 启动的流程差不多是启动时执行init脚本,它里面有引导到真正系统的全部流程。大概看看这个脚本,看到第66行就知道,在启动过程中执行了hooks文件夹里面一系列hook文件来加载一系列的准备操作。我们看看hooks文件夹里面会发现有个archiso文件。它就是关键。 2.修改archiso这个hook文件 读读archiso文件,可以知道它的工作正是找到光驱,然后把它里面的内容挂载,再启动系统。具体看到第71-83行 代码:
改吧,先把这段注释掉。我把2009.02文件命名为archlinux.iso,放在我的第三个分区上,就是sda3或者hda3上,它的文件系统是fat32。我写的代码是: 代码:
代码:
最后一点要改的就是,这里我们已经使用了0号环路设备loop0,而且它要一直被使用,所以后面如果还要使用环路设备,应该从loop1开始。在archiso里面往后找,看到这句 代码:
代码:
搞定了archiso这个hook,清除掉hooks文件夹下面的临时文件,然后回到initrdHack目录里执行: 代码:
注意find . | cpio -o -H newc > ../archiso_pata.img 这句里我把生成的文件放在了外面而不是直接放在里面,放里面生成的文件的大小是不对的。不过我还不知道原因,有同学知道可以告诉我阿。 4. 看看搞定没有 把生成的新archiso_pata.img连同VMLINZ26内核文件和archlinux.iso一起放在sda3根目录下面。VMLINZ26也放在光盘里的/boot文件夹下面。 找个可以用的grub,进去的时候点c,进入命令行,输入 代码:
我学习bash才几天,只能看懂,但是写起来很困难,呵呵。上面的代码很基础,只能说明原理,他们只针对我的电脑,我也不知道怎么写出更好的通用的initrd文件,各位要是有好的建议可以分享下阿~ |
|
|
|
|
|
|
|
第 2 帖 | |
|
|
看得出来,很有探索劲头。已经很久没有见过这样的精神状态了。
此文收录,加精。 建议楼主多写文章,这样你会发现需要提高的不是知识,而是表达。
__________________
邮件/MSN/GTalk:gooth.cn的athurg |
|
|
|
|
|
|
|
第 3 帖 | |
|
|
呵呵,谢谢老大支持,第一次发帖,的确不怎么会组织语言,心里知道怎么回事,但是要说清楚并不容易~
|
|
|
|
|
|
|
|
第 4 帖 | |
|
|
有意义的文章,其他系统也都通用
__________________
linux 学习交流 你的 我的 大家的 欢迎来访我的blog http://wyg1258.cublog.cn |
|
|
|
|
|
|
|
第 5 帖 | |
|
|
kernal panic!!~
大概是说找不到 iso 文件。 我有三个硬盘,两个挂在机器里,一个移动硬盘,我打算装到移动硬盘里。 唯一的一个 FAT32 分区是我知道是 (hd1,8),但是使用你修改后的archiso脚本找不到那个分区好像。我不会 coding。 我是在一个已有的 linux 系统中改的文件。
__________________
3.1.4-1.arch.x86_64 Quad Q6600, 2x2G, 40G+320G+1T+2T, nvidia GeForce8600GT |
|
|
|
|
|
|
|
第 6 帖 | |
|
|
2009.02 使用了和 2008.06 不一样的打包方式,现在没法把 core pkgs 复制出来了。否则我应该会装的。
|
|
|
|
|
|
|
|
第 7 帖 | ||
|
|
引用:
2009.02安装的确比较麻烦。打包方式的确和以前不同,所以最好是利用光盘自己的方法。 祝你好运。 |
||
|
|
|
||