Raspberry Pi 3 และ Raspbian Jessie - วิธีรัน fsck ตอนบูต?


13

วิธีรัน fsck ตอนบูทเมื่อใช้ Pi 3 และ Raspberry Jessie ฉันได้อ่านบทแนะนำแล้ว แต่พวกเขาต่างกัน

ฉันวิ่งได้sudo touch /forcefsckแต่ฉันต้องทำยังไงดี? ฉันรู้ว่าฉันควรตั้ง FSCKFIX = ใช่ แต่ไฟล์ที่ถูกต้องคืออะไร? บางคนบอกว่าคนอื่น ๆ/lib/init/vars.sh/etc/default/rcS

ฉันจะตรวจสอบว่าการตั้งค่าของฉันทำงานได้อย่างไร ฉันไม่สามารถมองเห็นหน้าจอได้ เกิดไฟดับจึงมีความเสี่ยงสูงที่ระบบไฟล์จะเสียหาย

แก้ไข:

ฉันลองวิธีแก้ปัญหาสองข้อที่กล่าวถึงด้านล่าง

1)โดยใช้sudo shutdown -rF now/var/log/boot.log พูดว่า: [^[[32m OK ^[[0m] Started Load/Save Random Seed. [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [ 3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12) [ 3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. Mounting /boot... [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. Starting Load/Save RF Kill Switch Status of rfkill0... [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [^[[32m OK ^[[0m] Mounted /boot. [^[[32m OK ^[[0m] Reached target Local File Systems. Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... Starting LSB: Raise network interfaces.... [^[[32m OK ^[[0m] Reached target Remote File Systems. Starting Trigger Flushing of Journal to Persistent Storage... Starting LSB: Prepare console... Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)... [^[[32m OK ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2)โดยใช้fsck.mode=forceและfsck.repair=yesใน/boot/cmdline.txtbootlog พูดว่า: [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [ 5.749367] systemd-fsck[112]: Pass 2: Checking directory structure [ 8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity [ 8.683831] systemd-fsck[112]: Pass 4: Checking reference counts [ 9.318835] systemd-fsck[112]: Pass 5: Checking group summary information [ 9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$ [^[[32m OK ^[[0m] Started File System Check on Root Device. Starting File System Check on /dev/mmcblk0p1... Starting Remount Root and Kernel File Systems... [^[[32m OK ^[[0m] Started Remount Root and Kernel File Systems. Starting Load/Save RF Kill Switch Status of rfkill0... Starting Load/Save Random Seed... [^[[32m OK ^[[0m] Reached target Local File Systems (Pre). [ 9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12) [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [ 9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. [^[[32m OK ^[[0m] Started Load/Save Random Seed. Mounting /boot... [^[[32m OK ^[[0m] Mounted /boot.

เหตุใดล็อกไฟล์จึงแตกต่างกันโดยสิ้นเชิงในสองกรณีนี้

คำตอบ:


23

ฉันเรียกใช้ sudo touch / forcefsck แล้วฉันต้องทำอะไรอีก

นั่นคือสิ่งที่ใช้กับเสียงฮืด ๆ เจสซี่อาจเข้ากันได้กับมัน (หรืออาจจะไม่ใช่) แต่คุณก็สามารถทำสิ่งใหม่ด้วยวิธีนี้:

เพิ่มรายการต่อไปนี้ใน/boot/cmdline.txt:

fsck.mode=force

ตรวจสอบให้แน่ใจว่าไฟล์ยังคงอยู่ทั้งหมดหนึ่งบรรทัด ควรคั่นพารามิเตอร์ด้วยช่องว่าง

คุณอาจสังเกตเห็นfsck.repair=yesว่ามีอยู่แล้ว สิ่งเหล่านี้ไม่เหมือนกัน จากman systemd-fsck(เหล่านี้คือพารามิเตอร์ที่ส่งผ่านโดยเคอร์เนลไปยังinit , เช่น systemd):

fsck.mode =

หนึ่งใน "อัตโนมัติ", "บังคับ", "ข้าม" ควบคุมโหมดการทำงาน ค่าเริ่มต้นคือ "อัตโนมัติ" และตรวจสอบให้แน่ใจว่าการตรวจสอบระบบไฟล์เสร็จสิ้นเมื่อผู้ตรวจสอบระบบไฟล์เห็นว่าจำเป็น "บังคับ" ส่งผลให้ไม่มีการตรวจสอบระบบไฟล์เต็มรูปแบบ "skip" ข้ามการตรวจสอบระบบไฟล์ใด ๆ

fsck.repair =

หนึ่งใน "preen", "ใช่", "ไม่" ควบคุมโหมดการทำงาน ค่าเริ่มต้นคือ "preen" และจะซ่อมแซมปัญหาที่สามารถแก้ไขได้อย่างปลอดภัยโดยอัตโนมัติ "ใช่" จะตอบว่าใช่สำหรับทุกคำถามโดย fsck และ "ไม่" จะตอบคำถามทุกข้อ


มันแตกต่างกันsudo shutdown -rF nowอย่างไรเมื่อเทียบกับ? Boot.log มีลักษณะแตกต่างกันโดยสิ้นเชิง
JPX

3

นี่คือสิ่งที่ฉันใช้ในการปล่อยเจสซีที่เสถียรในตอนท้ายของบรรทัดในcmdline.txt: forcefsck

ฉันยังมีดังต่อไปนี้ในfstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 หมายเหตุ1และ2ในตอนท้ายของบรรทัด

ตรวจสอบและซ่อมแซมพาร์ติชันรูท (/ dev / mmcblk0p2) ในทุก ๆ การบู๊ต (@JulianKnight not / dev / sda2)

สิ่งที่อธิบายไว้ใน OP ดั้งเดิมยังคงใช้ได้กับ Wheezy บน RPi: sudo touch /forcefsck

@WillianPaixao หลังจาก Wheezy ไม่สนับสนุน-Fตัวเลือกของshutdownอีกต่อไป

วิธีบังคับให้การตรวจสอบระบบไฟล์ (ส่วนใหญ่) ถูกผูกไว้กับเคอร์เนลเวอร์ชันในบางจุดหลัง Debian 8.0 (ใน 8.2?) มันจะเปลี่ยนไปตามที่อธิบายไว้ในคำตอบ @goldilocks


2

คุณควรจะสามารถทำสิ่งต่อไปนี้ได้ซึ่งควรใช้กับลีนุกซ์ใด ๆ ที่ไม่ใช่แค่ Pi (เห็นได้ชัดว่าอุปกรณ์จะเปลี่ยนสำหรับแพลตฟอร์มที่ต่างกัน, sda2 ควรเหมาะกับการ์ด Pi SD เริ่มต้น):

sudo tune2fs -c 1 /dev/sda2

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


1

ฉันใช้shutdownกับ-Fพารามิเตอร์ [1]

sudo shutdown -rF now

ฉันรันคำสั่ง หลังจากรีบูต syslog ของฉันไม่มีข้อมูลใด ๆ ในการทำงาน fsck (ยืด raspbian)
Robert

2
ฉันเพิ่งตรวจสอบman shutdownRaspbian - ไม่มีตัวเลือก -F
Victor Sergienko

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