อ่านเขียนดิสก์ NTFS บนลีนุกซ์

ลีนุกซ์รองรับ filesystem ของฮาร์ดดิสก์ได้หลายรูปแบบ ทำให้เราสามารถใช้ลีนุกซ์อ่านหรือเขียนไฟล์บนดิสก์ที่มาจาก OS อื่นๆ ได้

ลักษณะการใช้ที่เจอบ่อยคือลงลีนุกซ์บนเครื่องเดียวกับ Windows แล้วอยากให้ลีนุกซ์อ่านหรือเขียนไฟล์ลงบนดิสก์หรือพาร์ทิชั่นที่เป็น Windows

หรืออีกแบบคือนำฮาร์ดดิสก์ หรือ USB Disk ที่ format มาเป็น NTFS มาต่อเครื่องที่ติดตั้งลีนุกซ์

ในบทความนี้ขอแนะนำวิธีการติดตั้ง ntfs-3g บน CentOS 6 เพื่อใช้ mount ดิสก์ที่เป็น NTFS บนลีนุกซ์  ให้สามารถอ่าน เขียนไฟล์ได้

สมมติว่าดิสก์ที่เป็น NTFS ต่ออยู่เป็น /dev/sdb ลองใช้คำสั่ง fdisk -l ดู จะเห็นพาร์ทิชั่นที่เป็น NTFS

[root@cent6 ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 200 GB
Device    Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        9729    78148161    7  HPFS/NTFS

ทดลองใช้คำสั่ง mount ดู

[root@cent6 ~]# mount /dev/sdb1 /mnt
mount: unknown filesystem type 'ntfs'

ไม่สามารถ mount ได้ สาเหตุเพราะว่าตอนนี้ลีนุกซ์ที่รันอยู่ (ดีฟอลต์ที่ได้จากการติดตั้ง CentOS 6) ยังไม่รองรับ filesystem แบบ NTFS

เราสามารถดู filesystem ที่ตอนนี้ลีนุกซ์รองรับหรือพร้อมใช้งาน โดยการใช้คำสั่ง cat ไฟล์ /proc/filesystems

[root@cent6 ~]# cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   binfmt_misc
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   usbfs
nodev   pipefs
nodev   anon_inodefs
nodev   inotifyfs
nodev   devpts
nodev   ramfs
nodev   hugetlbfs
        iso9660
nodev   pstore
nodev   mqueue
nodev   selinuxfs

 

ต้องติดตั้งแพ็คเกจเพิ่มชื่อ ntfs-3g ซึ่งมีอยู่ใน EPEL repo (ดูวิธีการติดตั้ง EPEL repo ได้ที่ yum แพ็คเกจบน CentOS 6 ได้มากขึ้นด้วย EPEL)

ใช้คำสั่ง yum install ติดตั้ง ntfs-3g

[root@cent6 ~]# yum install ntfs-3g
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
...
Dependencies Resolved
================================================================================
Package         Arch           Version                      Repository    Size
================================================================================
Installing:
ntfs-3g         x86_64         2:2011.4.12-5.el6            epel         247 k
Transaction Summary
================================================================================
Install       1 Package(s)
Total download size: 247 k
Installed size: 624 k
Is this ok [y/N]: y
...
Running Transaction
Installing : 2:ntfs-3g-2011.4.12-5.el6.x86_64                             1/1
Verifying  : 2:ntfs-3g-2011.4.12-5.el6.x86_64                             1/1
Installed:
ntfs-3g.x86_64 2:2011.4.12-5.el6

 

หลังการติดตั้งเรียบร้อยแล้ว ลองใช้คำสั่ง mount ดิสก์ที่เป็น NTFS อีกครั้ง

[root@cent6 ~]# mount /dev/sdb1 /mnt

cd เข้าไปไดเร็คทอรีที่ mount ไว้ ลองใช้ ls -l ดู จะเป็นไฟล์ในดิสก์ที่เป็น NTFS ได้ เราสามารถใช้คำสั่ง cp ดึงไฟล์ออกมาได้

[root@cent6 ~]# cd /mnt/
[root@cent6 mnt]# ls -l
-rwxrwxrwx. 1 root root       211 Jun  1  2009 boot.ini
drwxrwxrwx. 1 root root      4096 Sep  5  2008 Documents and Settings
-rwxrwxrwx. 1 root root    250032 Aug  4  2004 ntldr
-rwxrwxrwx. 1 root root    262144 Sep 22  2008 ntuser.dat
-rwxrwxrwx. 2 root root      1024 Oct 15  2008 ntuser.dat.LOG
-rwxrwxrwx. 1 root root 402653184 Jan  1  2002 pagefile.sys
drwxrwxrwx. 1 root root     16384 Dec  6 15:44 Program Files
drwxrwxrwx. 1 root root         0 Oct  9  2010 RECYCLER
drwxrwxrwx. 1 root root      4096 Apr 11  2006 System Volume Information
drwxrwxrwx. 1 root root     53248 Jan  1  2002 WINDOWS

สำหรับการเขียนไฟล์ หลังจาก mount ดิสก์ที่เป็น NTFS ได้แล้ว เราก็สามารถเขียนไฟล์หรือสร้างไดเร็คทอรีลงไปได้ เหมือนกับดิสก์ที่เป็น ext3, ext4 ทั่วไป

หากต้องการดูชื่อชนิด (Type) ของ filesystem ที่ ntfs-3g ใช้ mount ดิสก์ที่เป็น NTFS ให้ใช้คำสั่ง df -hT ตามด้วยพาธที่ใช้ mount

[root@cent6 ~]# df -hT /mnt
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sdb1  fuseblk    200G  130G   74G  63% /mnt

โปรแกรม ntfs-3g จะใช้ fuseblk สำหรับการ mount ดิสก์ที่เป็น NTFS

ข้อมูลอ้างอิง

 

Leave a Reply

Your email address will not be published.