给安卓手机安装linux系统分区,把Linux装在你的FAT32分区

把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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值