ฉันจะเมาท์พาร์ติชัน NTFS อย่างถูกต้องใน / etc / fstab ได้อย่างไร


72

หลังจากเหตุการณ์ที่น่ารังเกียจ (ครั้งที่สองของคุณคุณคิดว่าฉันเรียนรู้) ที่เกิดจากการดาวน์โหลดพอดคาสต์อัตโนมัติที่ไม่มีผู้ดูแลเต็มทั้งพาร์ติชันของฉันในที่สุดฉันก็ย้าย~/Musicไปที่พาร์ติชันของตัวเอง พาร์ติชันที่ฉันใช้นั้นถูกฟอร์แมตแล้ว NTFS (นี่คือส่วนอัจฉริยะ: เมื่อฉันได้รับคอมพิวเตอร์เครื่องนี้เมื่อสามปีก่อนฉันตั้งค่าพาร์ติชันเพลง 20G อย่างแม่นยำเพราะฉันเคยมีปัญหานี้มาก่อน แต่ฉันไม่เคยจริงเลย จัดระเบียบตัวเองเพื่อเก็บเพลงไว้ข้างหลังนั่นคือ backstory ของฉันนี่คือสิ่งที่ฉันต้องการตอนนี้:

ฉันมีพาร์ติชั่นสองตัวที่ฉันต้องการเริ่มติดตั้งเมื่อเริ่มต้น:

/dev/sda3   /mnt/devel  ext4    defaults    0   2
/dev/sda2   /mnt/excess ntfs    defaults    0   2

Ext4 partion ติดตั้งได้ดี (ฉันเป็นเจ้าของเขียนได้โดยฉันเท่านั้น) แต่ ntfs mounts เป็นเจ้าของโดย root พร้อมสิทธิ์การอ่านและเขียนสำหรับทุกคน ฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร มีบางสิ่งที่แปลกประหลาดเกี่ยวกับ ntfs หรือฉันทำบางอย่างที่อื่นที่ทำให้เกิดปัญหานี้หรือไม่?

drwxr-xr-x  7 amanda amanda 4096 2012-03-14 19:07 devel
drwxrwxrwx  1 root   root   4096 2012-03-14 22:38 excess

ตัวเลือก "noatime" หรือ "relatime" พร้อมใช้งานและแนะนำสำหรับการติดตั้ง ntfs ถาวร (ดู man mount.ntfs) ฉันมีปัญหาบางอย่างไม่ว่าง hdd กับ ext3 / 4 และ ntfs ด้วย!

คำตอบ:


89

สิทธิ์สำหรับ NTFS และระบบไฟล์ VFAT จะต้องตั้งค่าด้วยdmask, fmaskและumaskตัวเลือก dmaskควบคุมการอนุญาตสำหรับไดเรกทอรีfmaskควบคุมการอนุญาตไฟล์และumaskควบคุมทั้งสองอย่าง เนื่องจากตัวเลือกเหล่านี้ตั้งค่ามาสก์จึงควรเป็นส่วนเสริมของสิทธิ์ที่คุณต้องการ ตัวอย่างเช่น rwx สำหรับเจ้าของและ rx สำหรับผู้อื่นคือ 022 มากกว่า 755

ในการตั้งเจ้าของให้ใช้uidและgidตัวเลือกสำหรับผู้ใช้และกลุ่มตามลำดับ id -uคุณสามารถค้นหาโพสต์ของคุณด้วยคำสั่ง เพื่อหา GID id -gของคุณให้ใช้ ค่าเหล่านี้มักจะมี 1,000

ชุดทั่วไปของตัวเลือกสำหรับ NTFS uid=1000,gid=1000,dmask=027,fmask=137ภูเขาเป็น drwxr-x---ชุดนี้ให้คุณเป็นเจ้าของไดรฟ์และกำหนดสิทธิ์ในการ

นี่คือสองบรรทัดจาก / etc / fstab ของฉันทำงาน

UUID=EEA2B69CA2B668AB        /WIN_C     ntfs-3g   defaults,nls=utf8,umask=000,dmask=027,fmask=137,uid=1000,gid=1000,windows_names 0 0 
UUID=65AEC0E830EA0497        /WIN_D     ntfs-3g   rw 0 0

หากคุณไม่เห็นข้อผิดพลาดหลังจากรีบูตและพาร์ติชันยังคงอ่านอย่างเดียวหรือคุณได้รับข้อผิดพลาดคล้ายกับ:

Error mounting /dev/sda6 at /media/WindowsDrive: 
Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sda6" "/media/rolindroy/Media Center"' exited with non-zero exit status 14: The disk contains an unclean file system (0, 0). 
Metadata kept in Windows cache, refused to mount. 
Failed to mount '/dev/sda6': Operation not permitted The NTFS partition is in an unsafe state. 
Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option

นี่เป็นเพราะ Windows 8 และ 10 เสนอตัวเลือก "เริ่มต้นอย่างรวดเร็ว" ซึ่งขึ้นอยู่กับการปิดระบบ "ไม่เสร็จสมบูรณ์" คุณสามารถปิดใช้งานการเริ่มต้นอย่างรวดเร็วโดยทำตามขั้นตอนเหล่านี้ภายใต้ "ตัวเลือกพลังงาน"



นั่นคือที่มาของสิ่งที่กล่าวมาข้างต้น ฉันยังได้รวมคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของตัวเลือก * มาสก์
bessman

3
คุณสามารถให้ตัวอย่างที่สมบูรณ์ยิ่งขึ้นแสดงตัวเลือกเหล่านั้นที่ใช้ในบรรทัดจาก/etc/fstab
puk

3
@puk ฉันมีUUID=3030BD846F74E514 /media/iam/ntfspartition ntfs-3g uid=1000,gid=1000,dmask=022,fmask=133 0 0เพราะฉันได้รวมไว้ที่askubuntu.com/a/507326/221448 (ที่ฉันพูดถึงด้วยbind)
Brady Trainor

1
@ScottFuid=0,gid=0
wjandrea

34

หากคุณเมาท์พาร์ติชัน ntfs ด้วยตัวเลือกการอนุญาต chmod / chown จะทำงาน

/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2

จากนั้นคุณสามารถ

sudo chown your_user:your_user /mnt/excess

ง่ายกว่านั้น uid, dmask, fmask


ข้อเสีย / ผลข้างเคียงของsudo chownคำสั่งนั้น? มันทำอะไรกันแน่?
ReneSac

5
คำสั่ง chown เปลี่ยนเจ้าของจุดเชื่อมต่อ (/ mnt / เกิน) เป็นผู้ใช้ที่ต้องการ ขั้นตอนนี้จะต้องทำซ้ำทุกครั้งที่มีการติดตั้งพาร์ติชันในประสบการณ์ของฉัน (อย่างน้อยหลังจากรีบูตทุกครั้ง) ... ดังนั้นทำสิ่งที่เหมาะสมตั้งค่า uid / gid / umask ... ฉันคิดเสมอว่า fmask และ dmask ไม่บังคับ - เช่นเมื่อคุณต้องการการอนุญาตที่แตกต่างกันสำหรับไฟล์และ dirs
thecarpy

7

ฉันมีปัญหาบางอย่างกับเรื่องนี้เพราะเมื่อฉันรีบูตการเปลี่ยนแปลงชื่อดิสก์ ... ( sda0 เป็น sdb2 )

ฉันแก้ไขปัญหาด้วยการติดตั้ง UUID ใน fstab คุณสามารถดู UUID สำหรับฮาร์ดไดรฟ์ของคุณได้โดยป้อน: sudo blkid

ทำการสำรองไฟล์ fstab ของคุณ:

sudo cp /etc/fstab /etc/fstab.orig

ให้แน่ใจว่าคุณ tripple ตรวจสอบ >> หากคุณใส่> คุณเขียนทับ fstab ของคุณ!

sudo blkid >> /etc/fstab

หากคุณยังเมาอยู่คุณสามารถเปลี่ยน fstab ของคุณเป็นต้นฉบับได้:

sudo cp /etc/fstab.orig /etc/fstab

ทำโฟลเดอร์ต่อไป:

sudo mkdir /media/mydrivename

กำหนดค่า fstab:

sudo vim /etc/fstab

อย่าลืมแสดงความคิดเห็นผลลัพธ์จาก blkid ด้วย '#' ที่จุดเริ่มต้นของบรรทัด!

เพิ่มไฟล์นี้ไปยังไฟล์ fstab คุณสามารถค้นหา UUID ในบล็อกด้านล่างที่คุณแทรกด้วยคำสั่งด้านบน media / mydrivenameคือตำแหน่งที่ควรติดตั้งพาร์ติชัน

UUID=xxxxxxxxxxxxxxxxx   /media/mydrivename ntfs    permissions,locale=en_US.utf8    0   2

นี่คือไฟล์ fstab ของฉัน:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=5d4940cf-5cf5-443a-be11-1f7e551962d1 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=84b7e5e9-08c3-4641-b28b-99e0255e604d none            swap    sw              0       0

# 500 GB Webserver harddisk from lr-serv-01
UUID=BA9A48D39A488E37 /media/hdd1 ntfs permissions,locale=en_US.utf8 0 2

# 2 TB Movie share harddisk from lr-serv-01
UUID=7EB09666B09624A5 /media/hdd2 ntfs permissions,locale-en_US.utf8 0 2

#/dev/sda1: UUID="10EC004DEC003010" TYPE="ntfs" 
#/dev/sda2: LABEL="system" UUID="88A4FE47A4FE3772" TYPE="ntfs" 
#/dev/sda3: LABEL="storage_01" UUID="BA9A48D39A488E37" TYPE="ntfs" 
#/dev/sdb1: LABEL="storage_02" UUID="7EB09666B09624A5" TYPE="ntfs" 
#/dev/sdc1: UUID="84b7e5e9-08c3-4641-b28b-99e0255e604d" TYPE="swap" 
#/dev/sdc2: UUID="5d4940cf-5cf5-443a-be11-1f7e551962d1" TYPE="ext4" 
#/dev/sdd1: LABEL="storage_spotnet" UUID="EC6E8F416E8F0394" TYPE="ntfs" 
#/dev/sdd2: LABEL="storage_backup_pcs" UUID="6C2699D026999BA0" TYPE="ntfs" 
#/dev/sdd5: LABEL="storage_series" UUID="7670ABF770ABBC6D" TYPE="ntfs" 
#/dev/sdd6: LABEL="storage_winmx" UUID="564AB81B4AB7F5B9" TYPE="ntfs" 

รีบูตระบบโดยพิมพ์:

sudo reboot

หากต้องการตรวจสอบว่าพาร์ติชันติดตั้งอยู่คุณสามารถพิมพ์df -kได้

ให้ความเป็นเจ้าของกับคุณ:

sudo chown -R USERNAME:USERNAME /media/mydrivename

ทำสิ่งนี้บน Ubuntu Server 14.04.01 !

หวังว่าคำตอบนี้จะช่วยให้ใครบางคน ;-)


2
ในขณะที่ฟังดูเหมือนคำแนะนำที่มั่นคงโดยทั่วไปฉันจะพบว่ามันสง่างามกว่าที่จะเพียงแค่คัดลอก UUID จากเอาต์พุตsudo blkidแทนที่จะทิ้งสิ่งทั้งปวงไป/etc/fstabและทำให้มันเสียหายชั่วคราว อีกวิธีหนึ่งคือการรับ UUID จากกล่องโต้ตอบคุณสมบัติของพาร์ติชันใน GParted
David Foerster

เช่นเดียวกับที่ฉันทำบนเซิร์ฟเวอร์ของฉันฉันไม่เห็นวิธีที่จะคัดลอกจริงๆ ... ทั้งหมดที่ฉันมีคือแป้นพิมพ์และทุบตี
rotgers

เทอร์มินัลอีมูเลเตอร์ส่วนใหญ่อนุญาตให้คุณคัดลอกสิ่งต่าง ๆ (สมมติว่าคุณใช้การเข้าถึงระยะไกลหรือเทอร์มินัลอีมูเลเตอร์เช่นscreenหรือtmuxแทนเทอร์มินัลเสมือนจริงดิบ)
David Foerster

สมมติฐานไม่ดีฮ่าฮ่าฉันไม่ได้ใช้โปรแกรมจำลองเทอร์มินัล อย่างไรก็ตามฉันเพิ่มบางสิ่งลงในคำตอบของฉันสำหรับการทำสำเนาไฟล์ fstab ในกรณีที่มีคนขัน :)
rotgers

ฉันเปลี่ยนจากการใช้ UUID เป็น LABEL เพราะด้วยเหตุผลบางอย่างการเปลี่ยนแปลงของ UUID เมื่อฉันปรับพาร์ติชัน แต่ชื่อป้ายกำกับไม่ได้ นอกจากนี้ฉันพบว่ามันง่ายกว่าที่จะเห็นสิ่งที่เกิดขึ้นใน fstab ด้วย LABEL = "some-name" กว่า UUID = "สตริงสุ่มแบบยาว"
มุมมองรูปไข่

6

คุณสามารถใช้ยูทิลิตีntfs-config GUI เพื่อเมาต์พาร์ติชัน NTFS ใน fstab และสามารถเปิด / ปิดการใช้งานความสามารถในการอ่าน - เขียนได้อย่างง่ายดาย

เมานต์ NTFS Windows Partition FSTAB

คำแนะนำเพิ่มเติมโดยละเอียด: การติดตั้งพาร์ติชัน Windows ใน Ubuntu เมื่อเริ่มต้น


ขอบคุณ! คุณสร้าง gif อนิเมชั่นที่ดีได้อย่างไร?
Hans-Peter Störr

1
@hstoerr จากbyzanz บันทึก ตอนนี้มีทางเลือกที่ดีกว่าว่า
Gayan Weerakutti

4

อาจไม่ใช่วิธีที่ดี แต่คุณสามารถแมปรหัสผู้ใช้กับรหัสของคุณเองหรือรหัสกลุ่ม:

ตัวอย่างที่นี่ ID ผู้ใช้ของฉันคือ 1,000

/dev/sda5 /mnt/excess ntfs defaults,uid=1000,rw 0 0

ในกรณีดังกล่าวไฟล์ทั้งหมดจะถูกเมานต์โดยผู้ใช้เป็นจำนวน 1,000


1
ใช้งานได้ แต่ไม่ว่าจะมีหรือไม่มีตัวเลือก "rw" ก็ยังคงเมานต์พร้อมสิทธิ์drwxrwxrwx
Amanda

มันใช้งานได้สำหรับฉัน สำหรับการอนุญาตฉันเพิ่ม fstab file_mode = 0770, dir_mode = 0770
Rui F Ribeiro

2

โปรดทราบว่าหากคุณติดตั้งไดรฟ์ ntfs ของคุณโดยใช้ป้ายกำกับและต้องการเปลี่ยนสิทธิ์ของไดเรกทอรีหรือไฟล์ในไดรฟ์นี้การทำงานต่อไปนี้จะทำได้ดี (แก้ไข / etc / fstab เช่น sudo nano / etc / fstab แล้วเพิ่ม) :

LABEL=Portable_HD_2TB      /media/mintbox2/Portable_HD_2TB ntfs    permissions,defaults        0       2

ในขณะที่ด้านล่างจะไม่อนุญาตให้คุณเปลี่ยนการอนุญาตของไดเรกทอรีหรือไฟล์:

LABEL=Portable_HD_2TB      /media/mintbox2/Portable_HD_2TB ntfs    defaults        0       2

1

ฉันใช้สิ่งต่อไปนี้ที่ฉันพบอย่างถูกต้องให้สิทธิ์ฉันบนเมาท์ (ไดรฟ์ NTFS จากการตั้งค่าระบบดูอัลบูต):

แก้ไข/etc/fstab:

สามารถพบ UUID ได้/dev/disk/by-uuid/(โดยปกติจะเป็นแผนที่/dev/sd*)

แทนที่<your uuid>ด้วย UUID ของคุณ

UUID=<your uuid> /mnt/e ntfs auto,users,uid=1000,gid=1000,dmask=027,fmask=137 0 0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.