当前位置:Linux教程 - Linux资讯 - 如何在Linux下访问Minix的文件系统?

如何在Linux下访问Minix的文件系统?

问题:我也有意想看MINIX的源代码,但看东西不结合实际使用,会流于肤浅并容易忘掉。所以我安装了Minix 2.0,想边用边看边试验。令我烦恼的是,不知道Minix 2.0使用的文件系统有什么变化,蓝点Linux 2.0竟然不认。搞得Linux无法mount Minix的分区,Minix也无法mount Windows的FAT分区,而Minix下的工具不足,必须和其它系统交换数据,十分难受。

Minix最有名的newsgroup是comp.os.minix,可到www.deja.com去看它已post的内容,发现已经有人问了这个问题"mount minixfs from Linux",而且有人回答了,而回答者之一是Albert S. Woodhull,经典教科书"Operating System: Design and Implementation 2nd Edition"的作者之一。于是又找到了Albert Woodhull的主页http://minix1.hampshire.edu这个主页的内容十分实用。其FAQ, Hints页在http://minix1.hampshire.edu/hints.Html有很多有用的东西在内。Minix和其它OS之间的数据交换在http://minix1.hampshire.edu/faq/datxchng.html介绍。我最关注的就是如何在Linux下mount一个Minix的文件系统,参考文件是http://minix1.hampshire.edu/faq/mxfromlx.html

原来出错的原因是:Minix安装到hd3主分区时,第一扇区512字节放的是引导代码,作引导扇区;后面的空间分成两块,第一块紧接在引导扇区后面,共1440K,称作hd3a subpartition,作Minix的/;剩下的是第二块,称作hd3c subpartition,作Minix的/usr。即Minix把主分区划分为subpartition,问题就出在这里,Linux不认识Minix的subpartition!

解决办法是:借助Linux的loop设备。Albert Woodhull语:"The Linux loop device can be used to handle this - it makes a file look like a filesystem, and the file can be defined as a byte offset from the beginning of a primary partition"。由此,(以下操作在Linux下进行)

losetup /dev/loop0 /dev/hda3 -o 512

表示hda3从512字节偏移开始处(前512字节是引导扇区),定义为loop0,亦即Minix的hd3a --> Linux的loop0。

losetup /dev/loop1 /dev/hda3 -o 1475072

表示hda3从1475072字节偏移开始处(512+1440x1024 = 1475072),定义为loop1,亦即Minix的hd3c --> Linux的loop1。然后把loop0, loop1当作普通Minix文件系统mount上去即可,

mount -t minix /dev/loop0 /minixmount -t minix /dev/loop1 /minix/usr

现在,在Linux下终于能够看到Minix的文件系统了。

参考资料:Mounting Minix Partitions from Linux,http://minix1.hampshire.edu/faq/mxfromlx.htmlExchanging Data between Minix and Other OS File Systems,http://minix1.hampshire.edu/faq/datxchng.htmlThe MINIX Hints Page,http://minix1.hampshire.edu/hints.html

http://zzh-cn.com

(出处:http://www.sheup.com)