ข้อมูลสำคัญทั้งหมดของเราตั้งอยู่ในระบบไฟล์ของประเภทหนึ่งหรืออื่น ๆ และปัญหาระบบไฟล์จะเกิดขึ้น บน Linux เราสามารถใช้
fsck
คำสั่งเพื่อค้นหาและแก้ไขข้อผิดพลาดของระบบไฟล์
ระบบไฟล์เป็นซอฟต์แวร์
ระบบไฟล์เป็นหนึ่งในส่วนประกอบที่สำคัญที่สุดของคอมพิวเตอร์ หากไม่มีระบบไฟล์คอมพิวเตอร์จะไม่สามารถเก็บข้อมูลใด ๆ ในฮาร์ดไดรฟ์ไม่ว่าจะเป็นไดรฟ์นั้นเป็นแผ่นเสียงเชิงกลแบบหมุนหรือ ไดรฟ์ของแข็ง . ในความเป็นจริงระบบไฟล์จะต้องสร้างขึ้นก่อนที่ระบบปฏิบัติการสามารถติดตั้งบนฮาร์ดไดรฟ์ จะต้องมีบางสิ่งบางอย่างสำหรับไฟล์ระบบปฏิบัติการที่จะเก็บไว้ดังนั้นระบบไฟล์จะถูกสร้างขึ้นในระหว่างกระบวนการติดตั้ง
ระบบไฟล์คือ สร้างโดยซอฟต์แวร์ เขียนถึงซอฟต์แวร์และอ่านจากซอฟต์แวร์ อย่างที่คุณทราบซอฟต์แวร์ที่ซับซ้อนทั้งหมดมีข้อบกพร่อง ข้อมูลของเรามีความสำคัญอย่างยิ่งต่อเราดังนั้นเราจึงมีความเชื่อมั่นในระบบไฟล์และซอฟต์แวร์ที่สร้างและใช้งานมาก หากมีบางอย่างผิดปกติเราสามารถลดการเข้าถึงบางส่วนของระบบไฟล์หรือแม้กระทั่งพาร์ติชันทั้งหมด
ทันสมัย ระบบไฟล์ Journaling ดีกว่าในการจัดการปัญหาที่อาจเกิดจากการสูญเสียพลังงานอย่างฉับพลันหรือความผิดพลาดของระบบ พวกเขาแข็งแกร่ง แต่พวกเขาไม่สามารถอยู่ยงคงกระพัน ถ้าพวกเขา ตารางภายในมีสัญญาณรบกวน พวกเขาสามารถสูญเสียการติดตามตำแหน่งที่แต่ละไฟล์อยู่ในไดรฟ์ขนาดเท่าใดมันคือชื่ออะไรและการอนุญาตให้ใช้ไฟล์ใดบ้าง
NS
fsck
คำสั่งช่วยให้คุณตรวจสอบว่าระบบไฟล์ของคุณมีสุขภาพดี หากพบปัญหาใด ๆ ที่สามารถแก้ไขได้สำหรับคุณเช่นกัน
ทำการตรวจสอบ preflight
โดยใช้
fsck
ต้องใช้
สิทธิพิเศษ Sudo
. คำสั่งใด ๆ ที่สามารถเปลี่ยนแปลงระบบไฟล์จำเป็นต้องได้รับการปฏิบัติด้วยความระมัดระวังและ จำกัด เฉพาะผู้ที่รู้ว่าพวกเขากำลังทำอะไรอยู่
นักบินไม่กระโดดเข้าสู่เครื่องบินเริ่มต้นขึ้นและบินลงไปในนู้นสีฟ้าอ่อน พวกเขาทำการตรวจสอบ preflight มีการเดิมพันมากเกินไปที่จะทำอย่างอื่น นั่นเป็นนิสัยที่ดีในการพัฒนา ก่อนที่คุณจะใช้
fsck
คุณต้องแน่ใจว่าคุณจะใช้มันในไดรฟ์ที่ถูกต้อง ดังนั้นก่อนทำอะไรก็ได้ด้วย
fsck
เรากำลังจะทำลาดตระเวนเล็กน้อย
เราจะเริ่มด้วย
fdisk
และท่อเข้าไป
น้อย
. เราไม่ได้ขอข้อมูลในพาร์ติชันที่เฉพาะเจาะจง โดยใช้
-l
ตัวเลือก (รายการ)
fdisk
แสดงรายการตารางพาร์ติชันในอุปกรณ์ทั้งหมดที่พบในไฟล์ "/ proc / partitions" หากมีอยู่
sudo fdisk -l | น้อยกว่า
เราสามารถดูรายการสำหรับ
/ dev / sda
และ
/ dev / sdb
. คุณสามารถเลื่อนดูไฟล์เพื่อดูรายการอื่น ๆ ที่อาจมีอยู่ในคอมพิวเตอร์ของคุณ
พาร์ติชันบน
/ dev / sda
มีการระบุว่าเป็น
/ dev / sda1
,
/ dev / sda2
, และ
/ dev / sda3
. ดังนั้นเราจึงมีสามพาร์ติชันในไดรฟ์แรก เราสามารถดูข้อมูลเพิ่มเติมได้เล็กน้อยโดยใช้
แบ่งออก
สั่งการ. เราจะใช้
'พิมพ์'
ตัวเลือกในการแสดงตารางพาร์ติชันในหน้าต่างเทอร์มินัล
sudo แยกส่วน / dev / sda 'พิมพ์'
เราได้รับข้อมูลเพิ่มเติมในครั้งนี้รวมถึงประเภทของระบบไฟล์ในแต่ละพาร์ติชัน
รุ่น: ATA VBox Harddisk (SCSI) ดิสก์ / DEV / SDA: 34.4GB ขนาดภาค (ตรรกะ / กายภาพ): 512B / 512B ตารางพาร์ทิชัน: GPT ธงดิสก์: หมายเลขเริ่มต้นชื่อระบบไฟล์ขนาด 1 1049KB 2097KB 1049KB BIOS_GRUB 2 2097KB 540MB 538MB FAT32 ระบบ EFI ระบบบูต, ESP 3 540MB 34.4GB 33.8GB ext4
คอมพิวเตอร์ทดสอบนี้มีไดรฟ์สามตัว นี่คือผลลัพธ์สำหรับอีกสองไดรฟ์
/ dev / sdb
และ
/ dev / sdc
. โปรดทราบว่าระบบไฟล์เหล่านี้ไม่มีฟิลด์ "ชื่อ"
sudo แยกจากกัน / dev / sdb 'พิมพ์'
รุ่น: ATA VBox Harddisk (SCSI) ดิสก์ / DEV / SDB: 21.5GB ขนาดภาค (ตรรกะ / กายภาพ): 512B / 512B ตารางพาร์ทิชัน: MSDOS ธงดิสก์: หมายเลขเริ่มต้นประเภทชื่อไฟล์ประเภทไฟล์ 1 1049KB 21.5GB 21.5GB ext4
sudo แยกส่วน / dev / sdc 'พิมพ์'
รุ่น: ATA VBox Harddisk (SCSI) ดิสก์ / DEV / SDC: 21.5GB ขนาดภาค (ตรรกะ / กายภาพ): 512B / 512B ตารางพาร์ทิชัน: MSDOS ธงดิสก์: หมายเลขเริ่มต้นประเภทชื่อไฟล์ประเภทไฟล์ 1 1049KB 21.5GB 21.5GB ext3
ไดรฟ์ที่สองและสามเกิดขึ้นที่มีขนาดเท่ากันและแต่ละคนมีพาร์ติชันเดียว แต่ระบบไฟล์บนไดรฟ์ที่สองคือ
ext4
และระบบไฟล์บนไดรฟ์ที่สามคือรุ่นเก่า
ext3
.
เราผ่านตัวระบุพาร์ติชันให้
fsck
และตรวจสอบระบบไฟล์บนพาร์ติชันนั้น แต่เราไม่สามารถวิ่งได้
fsck
บนระบบไฟล์ที่เมาท์ เราจำเป็นต้องถอนการติดตั้งไดรฟ์ ในการทำเช่นนั้นเราจำเป็นต้องรู้จุดเชื่อมต่อที่พาร์ทิชัน - ดังนั้นระบบไฟล์จึงติดตั้งอยู่
เราสามารถค้นหาได้อย่างง่ายดายโดยใช้
df
สั่งการ.
DF / DEV / SDB1
DF / DEV / SDC1
การใช้คำสั่ง fsck
เรามีข้อมูลทั้งหมดที่เราต้องการ สิ่งแรกที่เราจะทำคือ unmount ระบบไฟล์ที่เรากำลังจะตรวจสอบ เราจะทำงานกับระบบไฟล์ในพาร์ติชันแรกและเฉพาะของ
/ dev / sdb
, ซึ่งเป็น
/ dev / sdb1
. เราเห็นก่อนหน้านี้ว่านี่เป็น
ext4
ระบบไฟล์และติดตั้งที่ "/ Run / Mount / Dave / Sata2"
เราจะใช้
umount
สั่งการ. หมายเหตุไม่มี "n" ใน "Umount"
Sudo Umount / Run / Mount / Dave / Sata2
กับ
umount
ไม่มีข่าวเป็นข่าวดี หากคุณกลับมาอย่างเงียบ ๆ กับพรอมต์คำสั่งเราดีที่จะไป
Sudo FSCK / DEV / SDB1
ระบบไฟล์นี้มีการรายงานว่าสะอาด นั่นหมายความว่าระบบไฟล์กำลังรายงานว่าไม่มีข้อผิดพลาดหรือปัญหา การตรวจสอบระบบไฟล์ที่ลึกกว่าจะไม่ดำเนินการโดยอัตโนมัติ นอกจากนี้เรายังสามารถดูรหัสส่งคืนที่
fsck
กลับไปที่เปลือก
echo $?
ค่าส่งคืนของศูนย์บ่งชี้ว่าไม่มีข้อผิดพลาด รหัสส่งคืนที่เป็นไปได้คือ:
- 0 : ไม่มีข้อผิดพลาด
- 1 : แก้ไขข้อผิดพลาดของระบบไฟล์
- 2 : ระบบควรรีบูต
- 4 : ข้อผิดพลาดของระบบไฟล์ที่ไม่ได้แก้ไขที่ไม่ได้แก้ไข
- 8 : ข้อผิดพลาดในการดำเนินงาน
- 16 : การใช้งานหรือข้อผิดพลาดทางไวยากรณ์
- 32 : การตรวจสอบยกเลิกโดยคำขอของผู้ใช้
- 128 : ข้อผิดพลาดแชร์ - ไลบรารี
แม้จะมีการรายงานระบบไฟล์ว่าสะอาด แต่เราสามารถบังคับให้ตรวจสอบระบบไฟล์เกิดขึ้นได้โดยใช้
-NS
ตัวเลือก (แรง)
Sudo FSCK / DEV / SDB1 -F
เวลานี้การตรวจสอบใช้เวลานานกว่าจะเสร็จสมบูรณ์ แต่จะทำการทดสอบระบบไฟล์อย่างละเอียดยิ่งขึ้น ระบบไฟล์ของเราสะอาดแน่นอนและไม่มีรายงานข้อผิดพลาด หากพบปัญหาเนื่องจากการทดสอบจะดำเนินการคุณจะได้รับแจ้งให้ปล่อยให้
fsck
แก้ไขปัญหาหรือเพิกเฉยต่อข้อผิดพลาด
เมื่อคุณทำการทดสอบเสร็จแล้วคุณต้องส่งไฟล์ไฟล์ใหม่ วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้
ติด
กับ
-NS
ตัวเลือก (ทั้งหมด) การตรวจสอบนี้ "/ etc / fstab" สำหรับรายการระบบไฟล์และตรวจสอบให้แน่ใจว่าติดตั้งทั้งหมดตามที่พวกเขากำลังติดตามการบูตปกติ
Sudo Mount -a
โปรดทราบว่าเราไม่จำเป็นต้องบอก
fsck
สิ่งที่ประเภทของระบบไฟล์ในพาร์ทิชัน; ยูทิลิตี้ระบุว่าจากการตรวจสอบระบบไฟล์ นั่นหมายความว่าเราสามารถบังคับให้มีการตรวจสอบระบบแฟ้มบน
/ dev / sdc1
, NS
ext3
ระบบไฟล์ในเครื่องคอมพิวเตอร์ของการทดสอบของเราใช้ว่าคำสั่งเดียวกันกับที่เราใช้ในการ
/ dev / sdb1
ซึ่งเป็น
ext4
กั้น
sudo fsck / dev / sdc1 -f
คุณอาจไม่ต้องการที่จะดำน้ำตรงเข้าไปแก้ไขระบบแฟ้ม คุณอาจจะชอบที่จะมองก่อนที่คุณจะกระโดด คุณสามารถถาม
fsck
ไม่ให้เสนอที่จะแก้ไขอะไรและเพียงแค่รายงานประเด็นที่หน้าต่าง terminal NS
-NS
(แห้ง) ตัวเลือกที่ไม่เพียงแค่นั้น:
sudo fsck -N / dev / sdb1
ตรงข้ามที่จะบอก
fsck
จะไม่รำคาญกระตุ้นหากพบข้อผิดพลาดใด ๆ และเพียงแค่ไปข้างหน้าและแก้ไขปัญหาเหล่านั้น การทำเช่นนี้ใช้
- ใช่
(ไม่มีการแจ้ง) ตัวเลือก
sudo fsck -y / dev / sdb1
ใช้ fsck ในพาร์ทิชันราก
คุณไม่สามารถใช้
fsck
ในพาร์ทิชันที่ติดตั้งอยู่ แต่ในการบูตเครื่องคอมพิวเตอร์ของคุณพาร์ทิชันรากจะต้องติดตั้ง ดังนั้นวิธีที่เราสามารถเรียกใช้
fsck
ในพาร์ทิชันราก? คำตอบคือการขัดขวางกระบวนการบูตและเรียกใช้
fsck
ในโหมดการกู้คืน
ในขณะที่คอมพิวเตอร์ของคุณบูตค้าง“Shift” หากคุณได้หมดเวลามันขวาคุณจะไม่บูตเข้าลินุกซ์ ขั้นตอนการบู๊ตจะหยุดที่เมนูสีดำและสีขาว เครื่องทดสอบที่ใช้สำหรับบทความนี้ถูกใช้ Ubuntu แต่การแจกแจงอื่น ๆ มีชนิดเดียวกันของเมนูแม้ว่ามันอาจแตกต่างกันไปในลักษณะ ที่มันว่า“อูบุนตู” ในหน้าจอก็จะมีชื่อของการกระจายของคุณ
เลื่อนแถบไฮไลท์ที่มี“ลูกศรขึ้น” และ“ลูกศรลงคีย์” เพื่อให้“ตัวเลือกขั้นสูงสำหรับอูบุนตูรายการเมนู” ถูกเลือก ตี“Enter” เพื่อย้ายไปยังหน้าจอถัดไป
เลือกตัวเลือกที่ลงท้ายด้วย“(โหมดการกู้คืน).” ในตัวอย่างของเรามันคือ“อูบุนตูกับ Linux 5.11.0-20 ทั่วไป (โหมดการกู้คืน).” กดปุ่ม“Enter”
คุณจะเห็นเมนูการกู้คืน เลือก“fsck ตรวจสอบระบบไฟล์ทั้งหมด” และกด“แท็บ” ที่สำคัญไฮไลท์ที่จะย้ายไปยังปุ่ม“OK” กดปุ่มตกลง."
คุณจะเห็นการแจ้งเตือนว่าพาร์ทิชันรากจะได้รับการติดตั้งพร้อมกับพาร์ทิชันอื่น ๆ ที่กำหนดไว้ในของคุณ “etc / fstab /” แฟ้ม .
กดปุ่ม“แท็บ” กุญแจสำคัญที่จะย้ายเน้นไปที่ปุ่ม“ใช่” และกด“Enter.”
คุณจะเห็น
fsck
ทำงานในโหมดโต้ตอบ หากมีปัญหาคุณจะได้รับแจ้งให้ให้
fsck
แก้ไขปัญหาได้หรือไม่สนใจพวกเขา เมื่อระบบไฟล์ที่ได้รับการตรวจสอบคุณจะเห็นเมนูกู้คืนอีกครั้ง
เลือก“เรซูเม่” และกด“แท็บ” ที่สำคัญไฮไลท์ที่จะย้ายไปยังปุ่ม“OK” และกด“Enter.” ขั้นตอนการบู๊ตจะกลับมาทำงานและคุณจะบูตเข้าลินุกซ์
บูตโหมดการกู้คืนจะมีผลต่อไดรเวอร์บางจึงเป็นวิธีที่ดีที่จะรีบูตอีกครั้งทันทีที่คุณบูตเข้าลินุกซ์ นี้ช่วยให้มั่นใจคอมพิวเตอร์ของคุณทำงานในแฟชั่นมาตรฐาน
เมื่อผิดสิ่งที่ไป
ตาข่ายความปลอดภัยจะมีเหตุผล ได้รับรู้
fsck
สั่งการ. หากจำเป็นต้องเกิดขึ้นที่จะใช้ในความโกรธวันหนึ่งคุณจะดีใจที่คุณคุ้นเคยล่วงหน้า