Linux 下如何加载qnx的分区

唐先生

我的开发机是linux系统,请问怎么在linux下挂载qnx的分区呢

你可以试试在Linux社区里呼吁一下,请他们支持一下 QNX4/QNX6 文件系统。呵呵。

LInux支持QNX4的文件系统,不过需要打内核补丁QNX4fs。google一下吧。
QNX6新出的那些文件系统还没见过有支持的。

楼上兄弟,我已经挂载了qnx的分区,可是不可写,在编译内核时说有个选项可以写qnx分区,难道就是你所讲的那个补丁

但是找了半天也没有那个可以写qnx分区的补丁阿

你看看这个
http://qnxfs.narod.ru/

哈哈,感谢楼上的兄弟,已经可以写了

这个问题解决了,我还有一个想法,记得以前我是先做了一个qnx的启动软盘,然后从软驱启动,使用dinit什么的格式化了CF,然后再从CF启动的,现在我的linux可以读写qnx的盘了,我是否可以在linux下用那个dinit来格式化CF卡呢,你给我的那个网页的现面有dinit的连接地址,把这个dinit编译了,然后是使用,可行不??

如果可以的话,该怎么做呢,我依稀记得,详细的已经记不请了,兄弟一起提示一下,还有我的CF卡是通过读卡器在u口挂载的

CF卡这个我没有试过,你自己试试看吧,没看过那份dinit的源码,试好了给大家分享一下。
估计dinit使用方法和qnx下的应该一样吧

把实验的结果贴出来,请唐先生和诸位兄弟指点一下

1、在linux机子上使用dinit -h /dev/sda1 初始化CF卡,也出现了。boot,。altboot等文件,提示成功,但放到目标机上,则提示找不到操作系统
2、在qnx系统中同样使用dinit,仍然不行,而且使用dinit时每次都是指向ipl-diskpc2-flop,我觉得后面的flop是软驱的意思还是怎么回事,不知对否

怀疑是CF卡的问题,因为我刚买了一个133X的Kingston 4G卡,而以前那个是sandisk的128M的卡,莫非是新卡不被qnx支持

3、用原来的CF卡启动系统,可以通过qconn于sdp6。4。1建立连接,可是提示qconn要更新,而且为什么ip地址总是192。168。66。11,在什么地方可以修改IP地址呢?我上次用ifconfig en0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255修改怎么不行呢

4、记得在6。3。2时有如何开发图形界面部分,在6。4。1中为何没有了

你需要把QNX系统中的boot文件复制进去再启动吧。
这个dinit出来的boot文件和altboot文件只是占坑,没有实际的内容。
我在主页下载他那个1.7k的tar包,解压后里面有个1g大小的img文件,从那个文件看,是占坑了,替换掉估计就o了。
另外如果文件不是占坑,而是实际存在,你挂在在vm上试用一下,能找到系统,还说明你的CF卡有问题,需要在目标机的bios里面调节磁头数住面数等,或者将你的CF 格式化的时候指定和bios一致的数。

呵呵,可能我没有怎么表达清楚,我已经替换了。altboot了,就是用我编译的ifs替换了

你说 需要在目标机的bios里面调节磁头数住面数等,或者将你的CF 格式化的时候指定和bios一致的数。



上面的怎么操作呢

我是这样做的:
首先你的linux系统要支持QNX文件系统,在编译内核时.config文件内要有:CONFIG_QNX4FS_FS=m

daniel ~ grep -i qnx /usr/src/linux/.config
CONFIG_QNX4FS_FS=m

mount 时加上参数 -t qnx4 ,比如我的qnx分区是 /dev/sdb1则
mount -t qnx4 /dev/sdb1 /mnt
我有一个问题不明白,也想请教:怎么将qnx的分区改大一点
我的硬盘信息如下
原车的硬盘 fdisk -l显示以下信息

~ fdisk -l /dev/sdb

Disk /dev/sdb: 30.1 GB, 30060527616 bytes
255 heads, 63 sectors/track, 3654 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x42f2e573
Device Boot Start End Blocks Id System
/dev/sdb1 1 131 1052226 4e QNX4.x 2nd part
/dev/sdb2 132 262 1052257+ 4f QNX4.x 3rd part
/dev/sdb3 263 2432 17430525 50 OnTrack DM

我想将sdb1,sdb2删除,容量全给sdb3,请问题怎么做?
fdisk删除我会,将sdb3改大容量我也可以用fdisk改,可是改完了如何对这个分区进行格式化(mkfs, 比如mke2fs /dev/sdb3可以将分区格式化为ext3(id=82))

我根据做一个系统盘的程序来理解,感觉格式化成qnx4的fs,应该就在dinit中完成的,开始的fdisk,到后来就是dinit,dinit后就可以在linux中加载qnx分区并且可写了阿

我的linux系统内没有dinit这个命令, 是要安装什么软件吗?另外dinit具体怎么做?非常感谢.

你在安装sdp的时候有dinit阿
就是dinit -h /dev/hd0t79

非常感谢,我没有接触过qnx,不过我在网上找到了dinit的源码,自己编译了,可以用了.对于原来没有动过的分区,现在可以mount -t qnx4fs
但对于执行完dinit(dinit -h /dev/sdb3)的分区,mount -t qnxfs时显示 wrong /.bitmap size

知道如何解决吗?

这个还真没有碰到,我的一直都还好阿,没有什么问题出现

非常感谢,我从网上找到了dinit的源码(http://www.alarsen.net/linux/qnx4fs/dinit.tgz),dinit -h /dev/sdb3后安装到车上可以用了。

有一点小问题,dinit 后在linux下mount -t qnx4fs 时挂不上,-t qnx4就能挂上,但是是只读的 mount -t qnx4fs其它分区就没有问题,报的错是 /.bitmap问题。

哈哈,问题很奇怪阿