วิธีใช้คำสั่ง findmnt บน Linux

เผยแพร่แล้ว: 2022-06-16
ภาพประกอบของระบบการจัดการเอกสารที่ลอยอยู่เหนือแล็ปท็อปที่เปิดอยู่
NicoElNino/Shutterstock.com

ค้นพบทุกสิ่งเกี่ยวกับจุดเชื่อมต่อระบบไฟล์ของคุณด้วยคำสั่ง Linux findmnt เป็นเครื่องมือแบบ all-in-one ที่มีไวยากรณ์ที่ง่ายมาก เราแสดงวิธีการใช้งาน

Mount Points

ระบบไฟล์ Linux เป็นต้นไม้ขนาดใหญ่ ขึ้นอยู่กับตัวเลือกที่คุณเลือกเมื่อติดตั้ง Linux ฮาร์ดไดรฟ์ต่างๆ ภายในคอมพิวเตอร์ของคุณอาจมีระบบไฟล์ต่างกัน หากคุณใช้แพ็คเกจ snap คุณจะมีระบบไฟล์หลอก squashfs ในระบบของคุณด้วย อุปกรณ์ต่างๆ เช่น เมมโมรี่สติ๊ก USB จะมีระบบไฟล์ต่างๆ โดยเฉพาะอย่างยิ่งหากคุณใช้กับคอมพิวเตอร์ Windows ด้วย

ไม่ว่าระบบไฟล์จะเป็นประเภทใด พวกเขาทั้งหมดจะต้องถูกต่อกิ่งบนแผนผังระบบไฟล์ในกระบวนการที่เรียกว่า การเมา นท์ การติดตั้งเป็นขั้นตอนสำคัญในการรับระบบการทำงาน เรามักจะคิดว่าจะติดตั้งอุปกรณ์เหมือนฮาร์ดไดรฟ์ แต่จริงๆ แล้ว สิ่งที่กำลังถูกเมานต์คือระบบไฟล์ในอุปกรณ์นั้น และหากไม่มีการเข้าถึงระบบไฟล์ต่างๆ เหล่านี้ คอมพิวเตอร์ของคุณอาจไม่สามารถบู๊ตได้ หรือคุณจะไม่สามารถเข้าถึงแอพพลิเคชั่นหรือข้อมูลได้

วิธี Mount และ Unmount อุปกรณ์เก็บข้อมูลจาก Linux Terminal
ที่เกี่ยวข้อง วิธีการเมานต์และยกเลิกการต่อเชื่อมอุปกรณ์เก็บข้อมูลจาก Linux Terminal

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

ความยืดหยุ่นนั้นหมายความว่าการติดตามจุดต่อเชื่อมต่างๆ ทั้งหมดเป็นเรื่องยาก โดยเฉพาะอย่างยิ่งจุดที่สร้างขึ้นโดยอัตโนมัติและสร้างขึ้นโดยที่คุณไม่ต้องเกี่ยวข้อง Linux มีเครื่องมือบรรทัดคำสั่งที่หลากหลายเพื่อให้คุณตรวจสอบการกำหนดค่าและสถานะของจุดต่อเชื่อมของคุณ จากทั้งหมดนั้น findmnt ใช้งานง่ายที่สุดและมีลูกเล่นบางอย่างในตัวมันเอง

คำสั่ง findmnt

คำสั่ง findmnt ได้รับการติดตั้งแล้วบน Ubuntu, Manjaro และ Fedora builds ที่เราตรวจสอบ หากไม่ได้ติดตั้งไว้ในคอมพิวเตอร์ Linux คุณจะสามารถค้นหาได้อย่างง่ายดายโดยใช้ตัวจัดการแพ็คเกจสำหรับการแจกจ่ายของคุณ

โฆษณา

เครื่องมือบรรทัดคำสั่งที่คุณใช้เพื่อเมาต์ระบบไฟล์เรียกว่า mount ระบบไฟล์ที่ถูกเมาต์ในขณะบู๊ตถูกกำหนดไว้ในไฟล์ “/etc/fstab” คุณสามารถใช้คำสั่ง mount เพื่อถ่ายโอนข้อมูลของจุดเชื่อมต่อทั้งหมดที่กำหนดค่าไว้ในไฟล์ “/etc/fstab” ของคุณ

 ภูเขา 

คำสั่งเมานต์

เอาต์พุตมีรายละเอียด แต่จัดรูปแบบในข้อความที่มีข้อความหนาแน่น

ดัมพ์ข้อมูลดิบจากคำสั่ง mount

ด้วยความพยายามเพียงเล็กน้อย คุณสามารถเลือกวิธีการของคุณผ่านมัน หรือไพพ์มันผ่านยูทิลิตี้เช่น grep เพื่อขยิบตาบิตที่คุณสนใจ ผลลัพธ์จาก findmnt สามารถเข้าถึงได้มากขึ้น

 findmnt 

คำสั่ง findmnt

ในทางตรงกันข้าม เอาต์พุตเริ่มต้นจาก findmnt จะถูกจัดตารางและมีแผนผังแสดงลำดับชั้นของจุดต่อเชื่อม

เอาต์พุตแบบตารางจาก findmnt

คอลัมน์คือ:

  • เป้าหมาย : ตำแหน่งของจุดต่อเชื่อมในระบบไฟล์
  • ที่มา : อุปกรณ์ต้นทางที่มีระบบไฟล์ โปรดทราบว่านี่อาจเป็นอุปกรณ์หลอกเช่นอุปกรณ์วนรอบ
  • Fstype : ประเภทระบบไฟล์
  • ตัวเลือก : ตัวเลือกที่ใช้กับคำสั่ง mount คำสั่งหรือในไฟล์ “/etc/fstab” เพื่อต่อเชื่อมระบบไฟล์

หากต้องการดูผลลัพธ์ที่ไม่มีแผนผัง ให้ใช้ตัวเลือก -l (รายการ)

 findmnt -l 

คำสั่ง findmnt พร้อมตัวเลือกรายการ -l

โฆษณา

คอลัมน์เหมือนกัน แต่ลำดับชั้นของจุดต่อเชื่อมไม่ได้แสดงเป็นแผนผังที่เยื้อง

ผลลัพธ์ของรายการ findmnt ธรรมดา

การเลือกประเภทระบบไฟล์เฉพาะ

อ็อพชัน -t (ประเภท) ทำให้ findmnt จำกัดรายงานให้รวมเฉพาะประเภทระบบไฟล์ที่คุณร้องขอเท่านั้น ตัวอย่างเช่น หากต้องการดูเฉพาะระบบไฟล์ ext4 ให้ใช้:

 findmnt -t exta 

ตรวจสอบจุดเชื่อมต่อระบบไฟล์ ext4 ด้วย findmnt

หากต้องการดูเฉพาะระบบไฟล์ squashfs คุณต้องพิมพ์:

 findmnt -t squashfs 

การตรวจสอบจุดเชื่อมต่อระบบไฟล์ squashfs ด้วย findmnt

หากต้องการกลับรายการที่เลือกเพื่อให้คุณเห็นทุกอย่างนอกเหนือจากประเภทที่คุณระบุไว้ในบรรทัดคำสั่ง ให้ใช้ตัวเลือก -i (กลับด้าน)

 findmnt -t สควอช -i 

ไม่รวมจุดเมานต์ squashfs ด้วยตัวเลือก -i invert

ระบบไฟล์ squashfs จะไม่ถูกรายงาน

เอาต์พุตจาก findmnt พร้อมระบบไฟล์ squashfs ถูกละเว้น

ตัวเลือก -t (ประเภท) ให้คุณใช้รายการประเภทระบบไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค อย่าเว้นวรรคระหว่างกัน เนื่องจากไม่อนุญาตให้มีการเว้นวรรคระหว่างประเภทระบบไฟล์

 findmnt -t สควอช,proc,ext4 

การเลือกจุดต่อเชื่อมระบบไฟล์สามประเภทพร้อมกันด้วย findmnt

การเลือกแหล่งข้อมูล

โดยค่าเริ่มต้น findmnt รับข้อมูลจาก “/etc/fstab”, “/etc/mtab” และ “/proc/self/mountinfo”

  • /etc/fstab : นี่คือไฟล์ที่เก็บรายละเอียดของการเมานท์ที่กำหนดค่าไว้ สิ่งเหล่านี้จะถูกดำเนินการในเวลาบูต
  • /etc/mtab : ไฟล์นี้เก็บรายละเอียดของการเมานท์ที่กำลังเมาต์อยู่
  • /proc/self/mountinfo : สิ่งนี้จะค้นหาเคอร์เนลสำหรับบัญชีที่เชื่อถือได้มากที่สุดของการเมานต์ระบบของคุณ

คุณสามารถบอก findmnt ให้ใช้แหล่งใดแหล่งหนึ่งได้หากต้องการ ตัวเลือกคือ:

  • —fstab หรือ -s : ดูใน “/etc/fstab” เท่านั้น
  • —mtab หรือ -m : ดูใน “/etc/mtab” เท่านั้น
  • —kernel หรือ -k : ดูใน “/proc/self/mountinfo” เท่านั้น
โฆษณา

เราสามารถเห็นความแตกต่างที่เกิดขึ้นได้หากเรามองหาระบบไฟล์ vfat อันดับแรก เราจะใช้ตัวเลือก -s (fstab) พบหนึ่งระบบไฟล์ vfat ซึ่งติดตั้งที่ "/boot/efi"

 findmnt -s -t vfat 

ใช้ findmnt เพื่อค้นหา /etc/fstab สำหรับการติดตั้งระบบไฟล์ vfat

เราจะลองอีกครั้ง และคราวนี้เราจะใช้ตัวเลือก -k (เคอร์เนล)

 findmnt -k -t vfat 

ใช้ findmnt เพื่อค้นหา /proc/self/mount สำหรับการติดตั้งระบบไฟล์ vfat

วิธีเขียนไฟล์ fstab บน Linux
ที่เกี่ยวข้อง วิธีการเขียนไฟล์ fstab บน Linux

รายงานนี้สี่รายการ หนึ่งคือระบบไฟล์ vfat เดียวกันกับที่พบในตัวเลือก -s อีกสามรายการเป็นการเมาต์ เฉพาะกิจ ที่เกิดขึ้นเนื่องจากมีการเสียบหน่วยความจำ USB สองอันแล้ว ตัวเลือก -s ไม่พบเนื่องจากไม่ได้กำหนดค่าในไฟล์ “/ etc / fstab”

เมมโมรี่สติ๊ก USB หนึ่งอันเชื่อมต่อเป็น “/dev/sdc1” ซึ่งเป็นพาร์ติชั่นแรกบนอุปกรณ์ sdc เมมโมรี่สติ๊กอีกอันหนึ่งมีสองพาร์ติชั่น และติดตั้งเป็น “/dev/sdb1” และ “/dev/sdb2”

ที่เกี่ยวข้อง: ไฟล์ Linux fstab คืออะไรและทำงานอย่างไร

เลือกโดย Mount Point

หากคุณทราบจุดต่อเชื่อม คุณสามารถส่งต่อไปยัง findmnt เพื่อค้นหาการตั้งค่าและรายละเอียดอื่นๆ

 findmnt /media/dave/PINK
 findmnt /media/dave/WHITEUSB 

ตรวจสอบจุดเมานต์ตามชื่อด้วย findmnt

โฆษณา

เราจะเห็นว่าหน่วยความจำ USB ทั้งสองนี้มีระบบไฟล์ vfat และได้รับการติดตั้งเป็น “/dev/sdb2” และ “/dev/sdc1”

การใช้โหมดโพลใน findmnt

อาจเป็นคุณสมบัติที่ยอดเยี่ยมที่สุดของ findmnt ก็คือคุณสมบัติการหยั่งเสียง การเขียนภาพไปยังอุปกรณ์ USB เป็นสิ่งที่คุณสามารถทำอยู่เป็นระยะๆ การระบุไดรฟ์ที่ถูกต้องเป็นสิ่งสำคัญ คุณไม่ต้องการเขียนทับอุปกรณ์ที่ไม่ถูกต้อง findmnt ทำให้ง่ายต่อการดูว่าอุปกรณ์ใดที่เชื่อมต่อไดรฟ์แบบถอดได้

วิธีเขียนไฟล์ ISO ลงในไดรฟ์ USB ใน Linux
ที่เกี่ยวข้อง วิธีเขียนไฟล์ ISO ลงในไดรฟ์ USB ใน Linux

มีสองวิธีในการทำเช่นนี้ คุณสามารถขอให้ findmnt ตรวจสอบการต่อเชื่อมใหม่ได้เป็นระยะเวลาหนึ่ง โดยแสดงเป็นมิลลิวินาที พาหนะใดๆ ที่เกิดขึ้นในช่วงเวลานั้นจะถูกรายงาน สิ่งนี้ใช้ตัวเลือก --timeout

วิธีที่สองบอกให้ findmnt รอจนกว่าจะตรวจพบการเมานต์ใหม่ สิ่งนี้ใช้ตัวเลือก --first-only จะรอตราบเท่าที่การขึ้นบกใหม่เกิดขึ้น แต่จะรายงานเฉพาะการขี่ครั้งแรกที่เกิดขึ้นเท่านั้น ตัวเลือก --timeout จะรายงานเกี่ยวกับการติดตั้งใหม่ทั้งหมดที่เกิดขึ้นระหว่างช่วงเวลาการหยั่งเสียงที่ระบุ

คำสั่งนี้บอกให้ findmnt ตรวจสอบการติดตั้งใหม่เป็นเวลา 30 วินาที

 findmnt -p --timeout 30000 

สร้าง findmnt monitor สำหรับจุดเมานต์ใหม่เป็นเวลา 30 วินาที

มีการเสียบปลั๊กหน่วยความจำ USB อันเดียวในช่วงเวลาดังกล่าว รายงานเมื่อวันที่ และ findmnt ดำเนินการตรวจสอบต่อไปเป็นเวลา 30 วินาทีที่เหลือ

คำสั่งนี้บอกให้ findmnt ตรวจสอบการต่อเชื่อมใหม่จนกว่าจะเห็นจุดเชื่อมต่อใหม่ที่สร้างขึ้น

 findmnt -p --first-only 

รอจุดเมานต์ใหม่ต่อไปด้วย findmnt

โฆษณา

เมื่อเสียบปลั๊กอุปกรณ์ใหม่ อุปกรณ์จะรายงานจุดต่อเชื่อมใหม่ จากนั้นออกจากพรอมต์คำสั่ง

วิธีง่ายๆ ในการหลีกเลี่ยงการฟาล์วอัพ

การเขียนทับอุปกรณ์ที่ไม่ถูกต้องถือเป็นหายนะเสมอ คำสั่ง findmnt ทำให้ง่ายต่อการระบุอุปกรณ์ที่คุณเพิ่งเสียบเข้าไป ทำให้กระบวนการเขียนทับปลอดภัยยิ่งขึ้น

ง่ายและปลอดภัยกว่าเป็นอีกวิธีหนึ่งในการพูดว่า win win

ที่เกี่ยวข้อง: วิธีเขียนทับพื้นที่ว่างอย่างปลอดภัยใน Windows