概述
把Linux装在你的FAT32分区
发布时间:2007-02-14 12:44:20来源:红联作者:williamEXE
本文仅供参考学习
经过几天的实践,我找到一个方法,可以把Linux以普通文件的形式装在FAT32分区,只需要以下三个文件就够了:
根文件 rootfs
内核文件 vmlinuz-2.6.6
初始化文件 initrd-2.6.6.img
这样做的好处是:
1 不用腾出任何分区
2 移动方便,拷到新的系统马上就能运行
3 卸载方便,直接删除既可
Linux的根文件系统除了可以做在物理分区上之外, 还可以做在LOOP设备或NFS文件系统上,本文将详细介绍如何在LOOP设备上建立一个完整的Linux系统。需要解决的问题是:
1. 如何生成根文件rootfs。
2. 如何通过initrd把rootfs挂在根上。
3. 生成合适的内核。
4. 如何引导。
rootfs实质上是一Linux分区映映像,如EXT3分区映像。首先,应该找到一台装有Linux系统的机器,用ROOT登陆后,建立我们的工作目录:
mkdir /work
cd /work
du -sh /
1.6G # 我的系统共1.6G
# 生成一个足够大的空文件
dd if=/dev/zero of=./rootfs bs=1024 count=3000000
# 格式化成你想要的分区格式
mkfs -t ext3 ./rootfs
# 挂接在./loop上
mkdir loop
mount ./rootfs ./loop -t ext3 -o loop
# 大挪移,全部,除了我们的工作目录/work, /proc, /sys, /dev
cp -a /bin ./loop
cp -a /sbin ./loop
cp -a /lib ./loop
cp -a /usr ./loop
cp -a /etc ./loop
...
...
...
# dev目录用以下的方法拷贝
tar -cvf /dev dev.tar
cd loop
# 现在我们在/work/loop中
tar -xvf /work/dev.tar
# 不要忘了
mkdir proc
mkdir sys
现在,rootfs做成了。
接着,生成initrd.img。
pwd
/work/rootfs 更正:应为 /work/loop
cd etc
编辑fstab,在最上面加入如下内容,这是最主要的,假定系统要做在hda5分区:
# LOOP0 : /dev/hda5 vfat /rootfs
/dev/hda5是根文件rootfs存放的分区, vfat是此分区的格式, /rootfs是根文件的全路径,根据实际环境修改。
/dev/loop0 / ext3 default 1 1
fatab中其它的内容请根据实际环境或增或删。
mkinitrd --fstab ./fstab initrd.img 2.6.6 #2.6.6是你使用的内核的版本号,mkinitrd的详细用法请参照 man mkinitrd
接着,重新编译内核,只要把 loopback driver support 这一项编入内核(一定要编入内核,不能用模块!)就可以了。
接着,把initrd.img vmlinuz rootfs 三个文件拷到你自己的hda5根分区。
接着解决引导的问题。
以用Grub为例,如果你的机器上已经安装了Grub,可以直接用Grub引导。如果没有,请下载Grub for DOS,把Grub for DOS解压到你的hda5分区(详细用法请参照Grub for DOS的帮
助文件)。修改其中的menu.lst,内容如下:
color black/cyan yellow/cyan
timeout 15
default 0
title DOS/Win9x/Me/NT/2K/XP on (hd0,0)
root (hd0,0)
chainloader +1
title Linux
root (hd0,4)
kernel /rootfs root=/dev/loop0
initrd /initrd.img
如果你的OS是windows 9x的话,则直接执行Grub.exe,如果是2000或XP的话,请用98启动盘引导后,执行Grub.exe。这时会出现Grub的引导介面,按C,打入如下内容:
root (hd0,4) # 也就是hda5
setup (hd0)
重启,选择在Grub的启动菜单中选择Linux,一切OK!!!
进入系统后,你还需要重新配置系统,如X。
以后想要改变rootfs的存放位置的话,请更新fstab后,重新运行mkinitrd生成新的initrd.img
本人用这样方法做成在一只机上做了四个Linux系统,我的menu.lst:
color blue/white
timeout 15
default 0
title Windows XP
root (hd0,0)
chainloader +1
title RedHat 2.6.6
root (hd0,1)
kernel /vmlinuz-2.6.6 root=/dev/hda3
initrd /initrd-2.6.6.img
title SUSE Linux
root (hd0,4)
kernel /vmlinuz-suse root=/dev/loop0
initrd /initrd-suse.img
title Mandrake Linux
root (hd0,4)
kernel /vmlinuz-md root=/dev/loop0
initrd /initrd-md.img
title Debian Linux
root (hd0,4)
kernel /vmlinuz-de root=/dev/loop0
initrd /initrd-de.img
有两个系统是在vmware上做的,一个是在朋友的机器上做的,
理论上可以安装任意个Linux系统,不过,我的硬盘才40G。
最后
以上就是妩媚树叶为你收集整理的给安卓手机安装linux系统分区,把Linux装在你的FAT32分区的全部内容,希望文章能够帮你解决给安卓手机安装linux系统分区,把Linux装在你的FAT32分区所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复