鄙人当年用PC硬盘做了一个移动硬盘(其实并不方便移动,只是外边包装了一个壳子,可以用USB口访问而已),移动硬盘上存放了一些学习资料。某日想把一部分学习资料拿到公司去学习,可公司的本本不允许带回家,家里的本本又被我装了个CentOS玩玩,就想着能不能先把资料拷到CentOS上,再通过其他方式比如U盘什么的拷到公司去。

 

    奈何CentOS并不认识俺当年做的移动硬盘,因为文件系统是NTFS的。网上搜资料,据说可以利用ntfs-3g来让CentOS认识NTFS的文件系统。于是一步一步的做:

 

1、安装gcc编译器

C代码  

1. # yum install gcc

     中间执行过程中,会问你yes or no,输入:y,回车即可。

 

2、安装ntfs-3g

Java代码  

1. # cd /home  
2. # wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2011.4.12.tgz  <=下载压缩包  
3. # tar zxvf ntfs-3g_ntfsprogs-2011.4.12.tgz       <=解压  
4. # cd ntfs-3g_ntfsprogs-2011.4.12          <=进入解压后的目录  
5. # ./configure                 <=编译  
6. # make             <=安装  
7. # make install      <=安装

3、将移动硬盘接入,然后查看文件系统

Java代码  

1. # fdisk -l

 显示结果如下:

Html代码  

1. Disk /dev/sda: 160.0 GB, 160041885696 bytes  
2. 255 heads, 63 sectors/track, 19457 cylinders  
3. Units = cylinders of 16065 * 512 = 8225280 bytes  
4. Sector size (logical/physical): 512 bytes / 512 bytes  
5. I/O size (minimum/optimal): 512 bytes / 512 bytes  
6. Disk identifier: 0xd10cd10c  
7.   
8.    Device Boot      Start         End      Blocks   Id  System  
9. /dev/sda1   *           1          26      204800   83  Linux  
10. Partition 1 does not end on cylinder boundary.  
11. /dev/sda2              26        2637    20971520   83  Linux  
12. /dev/sda3            2637        3290     5242880   83  Linux  
13. /dev/sda4            3290       19458   129869824    5  Extended  
14. /dev/sda5            3290        3812     4194304   82  Linux swap / Solaris  
15.   
16. Disk /dev/sdb: 160.0 GB, 160041885696 bytes  
17. 255 heads, 63 sectors/track, 19457 cylinders  
18. Units = cylinders of 16065 * 512 = 8225280 bytes  
19. Sector size (logical/physical): 512 bytes / 512 bytes  
20. I/O size (minimum/optimal): 512 bytes / 512 bytes  
21. Disk identifier: 0xcb52b238  
22.   
23.    Device Boot      Start         End      Blocks   Id  System  
24. /dev/sdb1               1       19457   156288321    f  W95 Ext'd (LBA)  
25. /dev/sdb5               1        5223    41953684+   7  HPFS/NTFS  
26. /dev/sdb6            5224       11752    52444161    7  HPFS/NTFS  
27. /dev/sdb7           11753       19457    61890381    7  HPFS/NTFS

 可以看出,我的/dev/sdb5、/dev/sdb6、/dev/sdb7都是ntfs文件系统

 

4、挂载分区

Java代码  

1. # cd /mnt  
2. # mkdir winc  
3. # mount -t ntfs-3g /dev/sdb5 /mnt/winc

5、进入分区查看内容并进行其他操作

Java代码  

1. # cd winc  
2. # ls

 

说明:当时我第一次把/dev/sdb5挂载完成后,进行操作时,还出了一点小状况:

Java代码  

1. # cd winc  
2. # ls  
3. # cd tools  
4. # ls

 进行如上操作时,突然提示:

C代码  

  1. ls: 正在读取目录.: 输入/输出错误  

 即便是回到winc目录执行再执行ls命令也提示类似错误

回到mnt目录执行ls -l命令,类似:

Java代码  

1. ?---------    ? ?    ?        ?             ?  winc

 这里的权限、用户、用户组、大小、时间等等信息都变成问号了

 

后来又执行fdisk -l命令,结果发现:

Java代码  
1. ……以上省略……  
2. Disk /dev/sdc: 160.0 GB, 160041885696 bytes  
3. 255 heads, 63 sectors/track, 19457 cylinders  
4. Units = cylinders of 16065 * 512 = 8225280 bytes  
5. Sector size (logical/physical): 512 bytes / 512 bytes  
6. I/O size (minimum/optimal): 512 bytes / 512 bytes  
7. Disk identifier: 0xcb52b238  
8.   
9.    Device Boot      Start         End      Blocks   Id  System  
10. /dev/sdc1               1       19457   156288321    f  W95 Ext'd (LBA)  
11. /dev/sdc5               1        5223    41953684+   7  HPFS/NTFS  
12. /dev/sdc6            5224       11752    52444161    7  HPFS/NTFS  
13. /dev/sdc7           11753       19457    61890381    7  HPFS/NTFS

 NTFS文件系统的设备名从sdb统统变成了sdc,不知是不是因为我不小心碰到移动硬盘还算怎么回事,不管,先将winc卸载,再重新挂载:

Java代码  
1. # umount /mnt/winc  
2. # mount -t ntfs-3g /dev/sdc5 /mnt/winc  
3. # cd /mnt/winc  
4. # ls

 然后一切又都OK了。