QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5330|回复: 31

把Linux装在你的FAT32分区(原创)

[复制链接]
发表于 2004-6-6 05:51:26 | 显示全部楼层 |阅读模式
经过几天的实践,我找到一个方法,可以把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。     


我想做张自动安装的光盘,不过好难啊,估计需要两个月才能完成。

本文纯属个人的经验之谈,难免有疏漏的地方。有什么不明白的请回贴。

本帖子中包含更多资源

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

×
发表于 2004-6-6 11:30:06 | 显示全部楼层
老大,能不能说得再清楚一点,给广大菜鸟群们一个清晰的影响呀!拜托,我一直都像有一个你所做的系统。
回复

使用道具 举报

发表于 2004-6-6 12:07:40 | 显示全部楼层
这样性能会大折扣的,不过比起虚拟机来应该会好点,也是一个不错的选择
回复

使用道具 举报

 楼主| 发表于 2004-6-8 11:10:04 | 显示全部楼层
自己顶
回复

使用道具 举报

发表于 2004-6-8 12:20:03 | 显示全部楼层
听说win98装在win4lin下,因为文件系统原因比fat32还快
回复

使用道具 举报

发表于 2004-6-8 12:33:28 | 显示全部楼层
强人
回复

使用道具 举报

发表于 2004-6-8 14:53:55 | 显示全部楼层
这样的性能 ????
回复

使用道具 举报

发表于 2004-6-8 16:08:57 | 显示全部楼层
学习中。
不过要想通了之后再弄
回复

使用道具 举报

发表于 2004-6-8 20:30:07 | 显示全部楼层
老想着跟windows挂勾,那你装linux干甚?就用windows不就得了
回复

使用道具 举报

 楼主| 发表于 2004-6-9 01:57:30 | 显示全部楼层
[quote:906f5f631e="chamberlain"]老想着跟windows挂勾,那你装linux干甚?就用windows不就得了[/quote]

至少装N个Linux共存方便吧!
回复

使用道具 举报

发表于 2004-6-9 10:06:43 | 显示全部楼层
作学术研究尚可,真要这么折腾自己的机子,免了吧。
回复

使用道具 举报

发表于 2004-6-9 10:45:37 | 显示全部楼层
[quote:ebc0babc26="GGGO"]这样性能会大折扣的,不过比起虚拟机来应该会好点,也是一个不错的选择[/quote]

    我有不同意见, 虚拟机还提供一个网络环境(如vmware), 方便学习,更值得选择。
回复

使用道具 举报

发表于 2004-6-9 11:31:11 | 显示全部楼层
[quote:eb5754b0f5="黑色阳光"][quote:eb5754b0f5="chamberlain"]老想着跟windows挂勾,那你装linux干甚?就用windows不就得了[/quote]

至少装N个Linux共存方便吧![/quote]

不是很欣赏。

一个硬盘装 N 个 Linux 共存,本来就没任何问题。
回复

使用道具 举报

发表于 2004-6-9 12:33:50 | 显示全部楼层
顶,最好讲清楚一些拉
回复

使用道具 举报

发表于 2004-6-9 19:16:10 | 显示全部楼层
晕,我的贴子怎么不见了?
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-24 16:42 , Processed in 0.118379 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

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