ไฟล์ Linux fstab คืออะไรและทำงานอย่างไร
เผยแพร่แล้ว: 2022-01-29หากคุณใช้ Linux มีความเป็นไปได้สูงที่คุณจะต้องเปลี่ยนตัวเลือกบางอย่างสำหรับระบบไฟล์ของคุณ การทำความคุ้นเคยกับ fstab จะทำให้กระบวนการทั้งหมดง่ายขึ้นมาก และง่ายกว่าที่คุณคิดมาก
Fstab คืออะไร?
Fstab คือตารางระบบไฟล์ของระบบปฏิบัติการของคุณ หากคุณต้องการตรวจสอบระบบไฟล์ อย่าลืมอ่านบทความอื่นๆ ของเรา HTG อธิบาย: คุณควรเลือกระบบไฟล์ Linux ใด ในสมัยก่อน เป็นวิธีหลักที่ระบบจะเมาต์ไฟล์โดยอัตโนมัติ ทุกวันนี้ คุณสามารถเสียบไดรฟ์ USB ได้ทุกชนิด และมันจะปรากฏขึ้นใน Nautilus เช่นเดียวกับใน Windows และ Mac OS แต่กาลครั้งหนึ่ง คุณต้องเมานต์ดิสก์เหล่านั้นด้วยตนเองไปยังโฟลเดอร์เฉพาะโดยใช้ “ คำสั่งเมานต์” สิ่งนี้เป็นจริงสำหรับดีวีดี ซีดี และแม้แต่ฟลอปปี (จำได้ไหม?)
ย้อนกลับไปในตอนนั้น ทางเลือกเดียวของคุณคือบอกคอมพิวเตอร์ว่าทุกครั้งที่เสียบอุปกรณ์ใดอุปกรณ์หนึ่งอยู่ อุปกรณ์นั้นควรติดตั้งในที่เฉพาะโดยอัตโนมัติ นี่คือที่มาของ fstab และมันยอดเยี่ยมมาก สมมติว่าคุณสลับฮาร์ดดิสก์บนตัวควบคุม IDE หรือ SCSI ของคุณ คอมพิวเตอร์สามารถโหลดระบบไฟล์ในลำดับที่แตกต่างกัน ซึ่งอาจทำสิ่งต่างๆ ผิดพลาดได้ Fstab ได้รับการกำหนดค่าให้ค้นหาระบบไฟล์เฉพาะและติดตั้งโดยอัตโนมัติในลักษณะที่ต้องการทุกครั้ง เพื่อป้องกันไม่ให้เกิดภัยพิบัติมากมาย
ไฟล์ Fstab ของคุณ
ไฟล์ fstab ตั้งอยู่ที่:
/etc/fstab
มาดูไฟล์ fstab ของฉันกัน
คุณจะเห็นความแตกต่างอย่างแน่นอน แต่ถ้าคุณต้องการทำตาม fstab ของคุณเอง ให้เปิดคำสั่งนี้ลงในเทอร์มินัล:
คุณยังสามารถใช้ gedit ได้หากคุณไม่สะดวกใจกับ nano
ตัวเลือกที่ชัดเจน
คุณจะสังเกตเห็นว่ารายการทั้งหมดเริ่มต้นด้วย UUID คุณอาจจำได้ว่าเห็นสิ่งนี้ในบทความก่อนหน้าของเรา วิธีเลือกแบบแผนพาร์ติชันสำหรับพีซี Linux ของคุณ แต่เราจะอธิบายอีกครั้ง ระบบไฟล์แต่ละระบบในระหว่างการจัดรูปแบบจะได้รับ Universally Unique Identifier ซึ่งจะนำไปสู่หลุมฝังศพ เนื่องจากไม่สามารถเปลี่ยนแปลงได้ วิธีนี้จึงเป็นวิธีที่เหมาะที่สุดในการเลือกระบบไฟล์สำหรับการติดตั้ง โดยเฉพาะอย่างยิ่งสำหรับระบบที่สำคัญ สมมุติว่าพาร์ติชั่น /home ของคุณอยู่บนฮาร์ดไดรฟ์ตัวที่สอง และสุดท้ายคุณย้ายไปยังฮาร์ดไดรฟ์ภายนอก fstab จะยังพบพาร์ติชั่นนั้นและติดตั้งอย่างถูกต้องเพื่อหลีกเลี่ยงการบู๊ตล้มเหลว หากคุณเปลี่ยนไปใช้ (หรือติดอยู่กับการใช้) วิธีการแบบเก่าของการใช้ตัวระบุอุปกรณ์เพื่อเลือกพาร์ติชั่น (เช่น /dev/sda1) ข้อดีนี้จะหายไปเนื่องจากคอนโทรลเลอร์จะนับฮาร์ดไดรฟ์และพาร์ติชั่น และสามารถเปลี่ยนแปลงได้
แก้ไข: การใช้ UUID ในไฟล์ fstab ของคุณ ในขณะที่สะดวกสำหรับผู้ใช้ตามบ้านส่วนใหญ่ มีข้อแม้ที่สำคัญบางประการ วิธีนี้ใช้ไม่ได้เมื่อใช้สิ่งต่างๆ เช่น อุปกรณ์ "ประกอบ" หรือ "แบบเครือข่าย" หากคุณเป็นผู้ใช้ขั้นสูง หรือวางแผนที่จะใช้ซอฟต์แวร์ RAID ในอนาคต คุณไม่ควรใช้ UUID
ส่วนถัดไปของ fstab เช่นเดียวกับส่วนต่อๆ มา จะถูกคั่นด้วยช่องว่างหรือแท็บ หรือรวมกัน ที่นี่ คุณจะพบจุดเชื่อมต่อ อย่างที่คุณเห็น ฉันมีจุดเชื่อมต่อรูท (/) จุดเปลี่ยน และอีกสองจุดที่ฉันเพิ่มด้วยตนเองสำหรับไดรฟ์จัดเก็บข้อมูลเครือข่ายที่ใช้ร่วมกัน หากคุณกำลังเพิ่มรายการใน fstab คุณจะต้องสร้างจุดต่อเชื่อมด้วยตนเองก่อนที่จะรีสตาร์ทคอมพิวเตอร์ (และการเปลี่ยนแปลงจะมีผล)
ถัดไปเป็นส่วนที่ระบุประเภทของระบบไฟล์บนพาร์ติชัน หลายๆ อย่าง เช่น ext2/3/4, ReiserFS, jFS เป็นต้น ถูกอ่านโดย Linux ระบบเฉพาะของคุณอาจต้องติดตั้งแพ็คเกจเฉพาะเพื่อให้สามารถอ่านและเขียนได้ ตัวอย่างที่สมบูรณ์แบบคือพาร์ติชั่น NTFS ของฉัน; คุณจะเห็นว่าฉันใช้ไดรเวอร์ ntfs-3g เพื่อเข้าถึง
สิ่งที่น่ากลัวกว่า
สองสามตอนต่อไปคือสิ่งที่มักจะทำให้ผู้มาใหม่หวาดกลัว แต่ก็ไม่ได้ซับซ้อนมากนัก มีตัวเลือกมากมายให้เลือก แต่มีตัวเลือกทั่วไปเพียงไม่กี่ตัว ลองมาดูที่พวกเขา (ตัวเลือกเริ่มต้นคืออันดับแรก ตามด้วยทางเลือกอื่น แต่เนื่องจาก Linux distros อาจแตกต่างกันมาก ระยะของคุณอาจแตกต่างกันไป)
- auto/noauto: ระบุว่าควรติดตั้งพาร์ติชั่นโดยอัตโนมัติเมื่อบู๊ตหรือไม่ คุณสามารถบล็อกพาร์ติชั่นเฉพาะไม่ให้ติดตั้งตอนบูทเครื่องโดยใช้ “noauto”
- exec/noexec: ระบุว่าพาร์ติชั่นสามารถรันไบนารีได้หรือไม่ หากคุณมีพาร์ติชั่นเริ่มต้นที่คุณคอมไพล์ มันจะมีประโยชน์ หรือบางทีถ้าคุณมี /home ในระบบไฟล์แยกต่างหาก หากคุณกังวลเกี่ยวกับความปลอดภัย ให้เปลี่ยนเป็น “noexec”
- ro/rw: “ro” เป็นแบบอ่านอย่างเดียว และ “rw” คือแบบอ่าน-เขียน หากคุณต้องการเขียนไปยังระบบไฟล์ในฐานะผู้ใช้ ไม่ใช่รูท คุณจะต้องระบุ “rw”
- sync/async: อันนี้น่าสนใจ “ซิงค์” บังคับให้การเขียนเกิดขึ้นทันทีเมื่อดำเนินการตามคำสั่ง ซึ่งเหมาะสำหรับฟลอปปี (คุณเป็นคนเก่งแค่ไหน) และไดรฟ์ USB แต่ไม่จำเป็นทั้งหมดสำหรับฮาร์ดดิสก์ภายใน สิ่งที่ “async” ทำคืออนุญาตให้คำสั่งดำเนินการในช่วงเวลาที่ผ่านไป บางทีเมื่อกิจกรรมของผู้ใช้หยุดทำงานและอื่นๆ ในทำนองเดียวกัน เคยได้รับข้อความที่ขอให้คุณ "รอในขณะที่กำลังเขียนการเปลี่ยนแปลงลงในไดรฟ์หรือไม่" นี้มักจะเป็นเหตุผล
- nouser/user: อนุญาตให้ผู้ใช้มีสิทธิ์ในการติดตั้งและยกเลิกการต่อเชื่อม หมายเหตุสำคัญคือ "ผู้ใช้" หมายถึง "noexec" โดยอัตโนมัติ ดังนั้นหากคุณต้องการรันไบนารีและยังคงต่อเชื่อมเป็นผู้ใช้ โปรดใช้ "exec" เป็นตัวเลือกอย่างชัดเจน
ตัวเลือกเหล่านี้คั่นด้วยเครื่องหมายจุลภาคและไม่มีช่องว่าง และสามารถจัดลำดับใดก็ได้ หากคุณไม่แน่ใจเกี่ยวกับค่าเริ่มต้น คุณสามารถระบุตัวเลือกของคุณให้ชัดเจนได้ สิ่งต่าง ๆ ที่ติดตั้งจากที่ชั่วคราว (เช่น USB) จะไม่เป็นไปตามรูปแบบพื้นฐานนี้ เว้นแต่คุณจะสร้างรายการสำหรับพวกเขา (โดย UUID) ใน fstab สะดวกเมื่อคุณต้องการให้ฮาร์ดไดรฟ์ภายนอกติดตั้งในลักษณะเฉพาะเสมอ เนื่องจากทัมบ์ไดรฟ์ปกติและสิ่งที่คล้ายกันจะไม่ได้รับผลกระทบ

คุณจะเห็นว่าไดรฟ์จัดเก็บทั้งสองของฉันมีสิทธิ์ในการติดตั้งโดยผู้ใช้ เปิดใช้งานการเข้าถึงแบบอ่าน-เขียน และเปิดการต่อเชื่อมอัตโนมัติ ฉันไม่ได้คอมไพล์ซอฟต์แวร์มากนัก แต่เมื่อฉันทำ ฉันจะเพิ่มตัวเลือก “exec” ที่ส่วนท้ายของรายการ
การทุ่มตลาดและ Fscking
ตัวเลือกถัดไปคือค่าไบนารี ("0" สำหรับเท็จและ "1" สำหรับ "จริง") สำหรับ "การทุ่มตลาด" นี่เป็นวิธีการสำรองข้อมูลที่ค่อนข้างล้าสมัยสำหรับกรณีที่ระบบล่ม คุณควรปล่อยให้สิ่งนี้เป็น “0”
ตัวเลือกสุดท้ายคือค่าตัวเลขสำหรับ "ผ่าน" สิ่งนี้จะบอกระบบถึงลำดับที่จะ fsck (ออกเสียงตามที่คุณต้องการ) หรือทำการตรวจสอบระบบไฟล์ หากดิสก์มีตัวเลือก "0" ดิสก์นั้นจะถูกข้ามไป เช่น ไดรฟ์จัดเก็บรูปแบบ NTFS ของฉัน ระบบไฟล์รูทควรเป็น “1” เสมอ และระบบไฟล์อื่นๆ สามารถดำเนินการได้ในภายหลัง วิธีนี้ใช้ได้ผลดีที่สุดกับระบบไฟล์รายการบันทึก เช่น ext3/4 และ ReiserFS ระบบไฟล์ที่เก่ากว่า เช่น FAT16/32 และ ext2 อาจใช้เวลาสักครู่ ดังนั้นจึงควรปิด fscking และทำด้วยตัวเองเป็นระยะๆ
ตอนนี้คุณรู้แล้วว่ากำลังทำอะไรอยู่ คุณก็คลั่งไคล้การติดตั้งอัตโนมัติและอื่นๆ ที่คล้ายกัน สะดวกมากเมื่อคุณมีพาร์ติชั่นมากมายที่ต้องจัดการ อย่าลืมสำรองข้อมูลไว้เสมอในกรณีที่มีสิ่งผิดปกติเกิดขึ้น แต่ขอให้สนุก และอย่าลืมทิ้งประสบการณ์ของคุณในความคิดเห็น!
คำสั่งลินุกซ์ | ||
ไฟล์ | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · เข้าร่วม · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · ดู · strings · พิมพ์ · เปลี่ยนชื่อ · zip · unzip · เมานต์ · umount · ติดตั้ง · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · แพทช์ · แปลง · rclone · ฉีก · srm | |
กระบวนการ | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · หมดเวลา · ผนัง · ใช่ · ฆ่า · หลับ · sudo · su · เวลา · groupadd · usermod · กลุ่ม · lshw · ปิดระบบ · รีบูต · หยุด · poweroff · passwd · lscpu · crontab · วันที่ · bg · fg | |
ระบบเครือข่าย | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ