现在的位置: 首页 > 综合 > 正文

在Linux下访问Windows的分区

2013年08月04日 ⁄ 综合 ⁄ 共 2692字 ⁄ 字号 评论关闭

由于linux采用特殊文件格式,所以我们不能像windows那样直接通过逻辑磁盘的方式访问磁盘.
首先通过mkdir命令在/mnt目录下创建一个加载点目录/win,
mkdir /mnt/win
在创建了加载点后,我们就可以通过mount命令把windows分区加载到加载点目录上了:
mount -t vfat /dev/hda? /mnt/win
?代表windows分区的分区号,可用fdisk -1查看

如果觉得麻烦,也可以通过修改/ect/fstab文件来使启动时linux自动加载不同分区:
/dev/hda? /mnt/win vfat defaults,iocharset=cp936 0 0
参数iocharset=cp936能够使加载的分区支持中文.

 

 第一,windows系统分区有不同格式的问题,如9x的fat和fat32,nt的ntfs,以及2000和最新的xp的ntfs5,至于fat(fat32)格式,而ntfs的访问需要编译内核。
  第二,现在新版的linux如redhat已经不再在其package中包括linuxconf了,即使光盘上还带得有此软件包,默认状态下也是不会安装的,因此使用linuxconf并不是最好的方法,也绝非最简单的方法。
  第三,文章中没有说明中文的问题,而这是在使用中必然碰到的。因为通常在的windows分区中都有中文的目录和文件,如果不加入中文的支持,能访问windows分区,也没有太大的意义。
  
  一、ntfs分区的访问

  最好的办法是在linux安装前已经具有ntfs分区,这样在安装如mandrake和suse linux版本时,可以自动为你安装相应的内核并设置好,你就可以在不知情的情况下自由地访问windows分区,这也是我推荐初学者使用mandrake或者suse linux的原因,而redhat不会,因此需要编译内核。

  1、找到编译内核所需要的.config文件。 在/usr/src/linux/configs目录下有若干编译内核所用的配置。选择我们想要的配置,将它复制到/usr/src/linux目录下,改名为.config,命令如下:cp /usr/src/linux/configs/kernel-2.2.16-i686.config /usr/src/linux/.config

  2 、修改.config文件,去掉不用的模块,加上自己想要的模块。 打开.config,有许多XXXX=m的项,这些都是要被编译为模块的项,因为我们不希望编译这些模块,所以要把XXXX=m的项统统去掉。然后再加上我们想要的模块,将# CONFIG_NTFS_FS is not set 改为CONFIG_NTFS_FS=m 当然,可以用你熟悉各种工具来做这件事。

3、编译NTFS模块。 在/usr/src/linux目录下运行命令make modules来编译我们想要的NTFS模块。

  4、安装NTFS模块。 编译后得到的ntfs.o在/usr/src/linux/fs/ntfs目录下,手动将它复制到正确的目录下。 cp /usr/src/linux/fs/ntfs/ntfs.o /lib/modules/2.2.16-22/fs/

  注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。

  5、载入NTFS模块. 运行命令depmod;modprobe ntfs (以上为刘军民先生找到的方法,该方法比较简单和实用)

  另外你也可以使用make menuconfig,重新定制你需要的所有模块,接着运行make modeules;make modeules_install来安装。但是这种方式要麻烦和费时些。

  二、直接编写fstab文件

  这是最简单的方法。直接编写fstab文件的好处还在于,linux会在启动时自动为你装载你在其中定义的windows分区,不用在每次使用都要输入:mount -t vfat /dev/hda1 /mnt/winc。使用su命令转为root权限,用vim或者其他编辑软件打开fstab(位于/etc/fstab),命令如下:vim /etc/fstab,内容示例如下:

/dev/hda8 / ext2 defaults 1 1
/dev/hda6 /boot ext2 defaults 1 2
none /dev/pts devpts mode=0620 0 0
/dev/hda9 /home ext2 defaults 1 2
/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0
/mnt/floppy /mnt/floppy supermount fs=vfat,dev=/dev/fd0 0 0
/dev/hda1 /mnt/winc vfat user,exec,umask=0,codepage=936,iocharset=gb2312 0 0
/dev/hda5 /mnt/wind vfat user,exec,umask=0,codepage=936,iocharset=gb2312 0 0
none /proc proc defaults 0 0
/dev/hda7 /usr ext2 defaults 1 2
/dev/hda10 swap swap defaults 0 0
fstab文件内容多了一点,因为我的分区细了一点。你只要注意红色那两行。把/dev/hda1改为你的windows分区所在即可,如果windows有两个分区,一般就是/dev/hda1和/dev/hda3。如果你不清楚,按照我的fstab内容在你的fstab文件中加入那两行就行了,如果使用ntfs的,把其中的vfat改为ntfs即可。当然你首先要在/mnt目录下建立两个目录winc和wind,命令如下:mkdir /mnt/winc /mnt/wind。重新启动后看能不能访问你的windows分区,逐步试探更改/dev/hda?(?代表数字)直到能访问为止。

  三、关于中文的支持

  关键在于在fstab文件中定义windows分区的一行的最后面加上:codepage=936,iocharset=gb2312 0 0,但是对于使用COSIX中软linux或者红旗linux的读者来说,可以不加,显示中文目录和文件也没有问题,毕竟是汉化版本嘛。另外说明一点,中文目录和文件的显示跟整个linux的设置有关,如果没有在此之前设置好中文环境,还是无法在你的分区中看到中文目录和文件的,全部是些????代替了你的中文字

抱歉!评论已关闭.