ความแตกต่างระหว่าง fsck และ e2fsck คืออะไร?


คำตอบ:


29

fsck เป็นเพียงชื่อเดิม เมื่อพวกเขาออกมาพร้อมกับระบบไฟล์ใหม่พวกเขาจะต้องใช้เครื่องมือเฉพาะสำหรับแต่ละคน efsck สำหรับ ext, e2fsck สำหรับ ext2, dosfsck, fsckvfat ดังนั้นพวกเขาจึงทำการ fsck ส่วนหน้าว่าเพียงแค่เรียกเครื่องมือใดก็ตามที่เหมาะสม


อืมเห็นได้ชัดว่าคุณสามารถใช้ fsck "front-end" สำหรับงานทั่วไปบางอย่าง แต่ไม่ใช่สำหรับทุกสิ่งใช่ไหม ตัวอย่างเช่นตัวเลือก -c ( superuser.com/questions/20010/… ) ได้รับการกล่าวถึงในหน้า e2fsck แต่ใน fsck
Jonik

มี GPT fsck หรือไม่
Jonathan

@Jonathan fsck ตรวจสอบระบบไฟล์ในขณะที่ GPT เป็นตารางพาร์ติชั่น อาจมีเครื่องมือที่สามารถตรวจสอบสิ่งเหล่านั้นได้ แต่ฉันไม่สามารถนึกถึงสิ่งใดสิ่งหนึ่งที่อยู่ด้านบนหัวของฉันนอกเหนือจาก Disk Utility ของ Mac (หรือ diskutil บรรทัดคำสั่ง) gptคำสั่งจะมี "กู้จากตารางการสำรองข้อมูล" ตัวเลือกอย่างน้อยบน Mac
SilverWolf - Reinstate Monica

15

fsckเป็น wrapper สำหรับเครื่องมือเฉพาะตระกูลfsck. * พวกเขาสามารถใช้แทนกันได้กับหนึ่ง caveat (จาก mans fsck):

ตัวเลือกที่ไม่เข้าใจโดย fsck จะถูกส่งผ่านไปยังตัวตรวจสอบเฉพาะระบบไฟล์ อาร์กิวเมนต์เหล่านี้ต้องไม่ใช้อาร์กิวเมนต์เนื่องจากไม่มีวิธีใดที่ fsck จะสามารถเดาได้อย่างถูกต้องว่าอาร์กิวเมนต์ตัวใดมีตัวเลือกและไม่มีตัวเลือกใด

ตัวเลือกและข้อโต้แย้งที่ตาม - จะถือว่าเป็นตัวเลือกเฉพาะระบบไฟล์ที่จะส่งผ่านไปยังตัวตรวจสอบเฉพาะระบบไฟล์

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

อย่างไรก็ตาม fsck จะจัดการการดำเนินงานตามปกติส่วนใหญ่ในระบบไฟล์


5

ในระบบของฉันฉันมี:

  • fsck
  • fsck.ext2
  • fsck.ext3
  • fsck.ext4
  • e2fsck
  • ... ( fsck.*เครื่องมือเพิ่มเติมสำหรับระบบไฟล์อื่นที่ไม่ใช่แบบขยาย)

ตอนนี้ไม่มีสิ่งเหล่านี้เป็นลิงก์สัญลักษณ์ แต่e2fsckและfsck.ext2/3/4เครื่องมือทั้งหมดแชร์ inode เดียวกันดังนั้นจริงๆแล้วเป็นไฟล์เดียวกัน (เป็นไปได้ว่าไบนารีนี้จะสอบปากคำชื่อของตัวเองเมื่อมันถูกเรียกใช้และทำงานแตกต่างกันสำหรับชื่อที่ถูกเรียกด้วย แต่ฉันสงสัยว่าเป็นกรณีนี้)

ดังนั้นตอนนี้เราเหลือเครื่องมือสองอย่าง:

  • fsck
  • e2fsck

และอย่างที่คนอื่น ๆ บอกกันfsckเป็นเพียงส่วนหน้าที่เรียกเครื่องมือที่เหมาะสมสำหรับระบบไฟล์ที่เป็นปัญหาซึ่งในกรณีนี้e2fsckเป็นระบบไฟล์ตระกูล ext

ฉันเข้าใจเหตุผลของการมีfsck.ext2/3/4ไฟล์ต่าง ๆเพื่อให้ 1. มันง่ายในการเขียนสคริปต์ที่สามารถจัดการกับระบบไฟล์ทุกประเภทโดยทั่วไป (พวกเขาสามารถอนุมานชื่อเครื่องมือ fsck เล็กน้อยจากประเภทระบบไฟล์) และ 2 เพื่อความยืดหยุ่นเพื่อให้เป็นเรื่องเล็กน้อย เพื่อแยก e2fsck เป็นเครื่องมืออิสระสองตัวหรือมากกว่าหากจำเป็นในอนาคต


ขอบคุณสำหรับคำอธิบายที่ยาวขึ้นเพราะหลังจากอ่านคำตอบ @hyperslug ฉันรู้สึกว่าหัวใจวายแล้ว :-) ฉันมีระบบไฟล์ ext3 และฉันก็วิ่ง e2fsck
greenoldman

ตอนนี้ไม่มีสิ่งเหล่านี้เป็นลิงก์สัญลักษณ์ แต่เครื่องมือ e2fsck และ fsck.ext2 / 3/4 ทั้งหมดแชร์ inode เดียวกันทั้งหมดดังนั้นจึงเป็นไฟล์เดียวกัน (เป็นไปได้ว่าไบนารีนี้จะซักถามชื่อของตัวเองเมื่อมันถูกเรียกใช้และทำงานแตกต่างกันสำหรับชื่อที่ถูกเรียกด้วย แต่ฉันสงสัยว่าเป็นกรณีนี้) - ทำไมไม่ - นี่เป็นวิธี * โดยเฉพาะอย่างยิ่งของ nix-ish ทำสิ่งต่าง ๆ และอาจเป็นกรณี!
SlySven

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