Score:5

วิธีบังคับ fsck ในการรีบูตสำหรับ Ubuntu 20.04

ธง de

ฉันใช้ Ubuntu 20.04 บนอุปกรณ์ฝังตัว ฉันต้องการถามวิธีบังคับ fsck อัตโนมัติในการบูทเครื่อง? ใน Ubuntu เวอร์ชันเก่า สามารถทำได้โดยการแก้ไข /etc/default/rcS และตั้งค่า FSCKFIX=yes อย่างไรก็ตาม ฉันอ่านพบว่าใน Ubuntu รุ่นใหม่กว่า ไฟล์นี้ไม่ได้ใช้อีกต่อไปดังนั้นวิธีใดที่จะเปิดใช้งาน fsck อัตโนมัติในการบูทสำหรับ Ubuntu รุ่นใหม่

vanadium avatar
cn flag
คำถาม @guiverc นั้นเกี่ยวกับวิธีเริ่มต้น fsck ระหว่างการบู๊ตเหมือนที่เราทำได้ในวันก่อนหน้าโดยใช้ `sudo touch /forcefsck` สำหรับความตกตะลึงของฉัน ฉันเห็นวันนี้: `sudo tune2fs -l /dev/nvme0n1p2 | grepchecked` - `ตรวจสอบล่าสุด: ส. 31 ต.ค. 13:03:57 2020`.นั่นแสดงว่าระบบไฟล์ระบบไม่ได้รับการตรวจสอบโดยอัตโนมัติอีกต่อไปหรือไม่
Score:4
ธง cn

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

เปลี่ยน "จำนวนการเมานต์สูงสุด" (เฉพาะระบบไฟล์นามสกุล)

วิธีที่เร็วที่สุดคือการเปลี่ยนของคุณชั่วคราว จำนวนการเมานต์สูงสุด ถึง 1. นั่นจะทำให้เคอร์เนลและ e2fsck เพื่อตรวจสอบระบบไฟล์ในการรีบูตครั้งถัดไป อย่างไรก็ตาม ใช้ได้กับระบบไฟล์ ext เท่านั้น

ก่อนอื่นให้ตรวจสอบการตั้งค่าปัจจุบันของคุณในกรณีที่คุณต้องการคืนค่าเป็นค่าเริ่มต้นในภายหลัง:

sudo tune2fs -l /dev/nvme0n1p2 | grep 'เมานต์สูงสุด'

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

ปรับการตั้งค่าเป็น 1 ด้วยคำสั่ง:

sudo tune2fs -c 1 /dev/nvme0n1p2

ตอนนี้รีบูต - ควรตรวจสอบระดับเสียง หลังจากรีบูต คุณควรรีเซ็ตค่าเป็นค่าเดิมเพื่อหลีกเลี่ยงการตรวจสอบพาร์ติชันทุกครั้ง

เปลี่ยนพารามิเตอร์เคอร์เนล

อีกวิธีหนึ่งคือการ ส่งผ่านพารามิเตอร์เคอร์เนล ระหว่างการบู๊ตที่ควบคุมการ บริการ systemd สำหรับตรวจสอบระบบไฟล์. fsck.mode=บังคับ จะบังคับให้ตรวจสอบไฟล์

หากต้องการเพิ่มพารามิเตอร์เคอร์เนลเพียงครั้งเดียว ให้บูตไปที่เมนู Grub ไฮไลต์รายการแล้วกด อี. เลื่อนไปที่บรรทัดที่ขึ้นต้นด้วย ลินุกซ์, ตี จบ หากต้องการย้ายไปยังบรรทัดสุดท้าย ให้เพิ่มช่องว่างและพารามิเตอร์เคอร์เนล ตี Ctrl+x เพื่อปิดและทำการบูทต่อไป

Score:2
ธง us

หากคุณต้องการบังคับ fsck ในการรีบูตแต่ละครั้ง คุณต้องปฏิบัติตามขั้นตอนสองสามขั้นตอน

  1. ใช้ บลคิด เพื่อระบุ uuid สำหรับพาร์ติชัน
amarcus@amarcus-desktop:~$ blkid
/dev/mapper/vgubuntu-swap_1: UUID="d24b0766-c9be-49ef-9022-8ccae4f79801" TYPE="สลับ"
/dev/mapper/vgubuntu-root: UUID="d414c4f9-da0d-42bf-8290-4bcb55b8d984" BLOCK_SIZE="4096" TYPE="ext4"
amarcus@amarcus-desktop:~$ 

  1. ใช้ uuid หรือ mount point เพื่อค้นหาพาร์ติชัน /etc/fstab
amarcus@amarcus-desktop:~$ cat /etc/fstab 
# /etc/fstab: ข้อมูลระบบไฟล์คงที่
#
# ใช้ 'blkid' เพื่อพิมพ์ตัวระบุที่ไม่ซ้ำกันในระดับสากลสำหรับ
# อุปกรณ์; อาจใช้กับ UUID= เป็นวิธีที่มีประสิทธิภาพมากขึ้นในการตั้งชื่ออุปกรณ์
# ที่ใช้งานได้แม้ว่าจะมีการเพิ่มและลบดิสก์ ดู fstab(5)
#
# <ระบบไฟล์> <จุดเชื่อมต่อ> <ประเภท> <ตัวเลือก> <การถ่ายโอนข้อมูล> <ผ่าน>
/dev/mapper/vgubuntu-root / ext4 ข้อผิดพลาด=remount-ro 0 1
# /boot/efi เปิด /dev/nvme0n1p1 ระหว่างการติดตั้ง
UUID=0AE0-795B /boot/efi vfat umask=0077 0 1
/dev/mapper/vgubuntu-swap_1 ไม่มีการแลกเปลี่ยน sw 0 0

UUID=D41C-2F17 /mnt/WDElements อัตโนมัติ umask=0022,gid=1000,uid=1000,x-gvfs-แสดง 0 0

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

สำหรับพาร์ติชันรูท ตรวจสอบให้แน่ใจว่าตั้งค่ารายการเป็น 1

  1. สุดท้าย ตั้งค่าตัวนับเมานต์สำหรับพาร์ติชันนั้นเป็น 1
root@amarcus-desktop:~# tune2fs -c 1 /dev/mapper/vgubuntu-root

คำอธิบาย:

โดยทั่วไป ในขั้นตอนที่ 1 คุณกำลังระบุพาร์ติชันที่คุณต้องการตรวจสอบเมื่อบู๊ต

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

ในขั้นตอนที่ 3 คุณกำลังบอกว่าควรตรวจสอบจำนวนพาร์ติชันหลังจากติดตั้งแล้ว อาร์กิวเมนต์ 1 ระบุว่าหลังจากติดตั้งพาร์ติชันแล้วควรตรวจสอบ โดยพื้นฐานแล้วจะตรวจสอบหลังจากการเมานต์แต่ละครั้ง เช่น หลังจากรีสตาร์ททุกครั้ง

vanadium avatar
cn flag
ฉันไม่แน่ใจว่าระบบเก่า `sudo touch /forcefsck` ยังใช้งานได้อยู่หรือไม่ เนื่องจาก `systemd` ทำการเริ่มต้น
vanadium avatar
cn flag
ฉันไม่แน่ใจด้วยซ้ำว่าการตรวจสอบระบบไฟล์ยังคงเป็นแบบอัตโนมัติใน Ubuntu หรือไม่! `sudo tune2fs -l /dev/nvme0n1p2 | grepchecked` สำหรับฉันให้ `ตรวจสอบครั้งล่าสุด: ส. 31 ต.ค. 13:03:57 น. 2020`! `fstab` ยังคงมี `1` เป็นฟิลด์สุดท้าย
Kunal Shah avatar
us flag
@vanadium คุณพูดถูก ฉันเพิ่งตรวจสอบในระบบ 21.04 ใหม่ของฉันและ sudo touch /forcefsck ไม่ทำงาน ข่าวดีก็คือ tune2fs -c 1 /dev/mapper/vgubuntu-root ใช้งานได้ ตรวจสอบระบบไฟล์หลังจากรีบูตแต่ละครั้งใน Ubuntu 21.04 ของฉัน
Kunal Shah avatar
us flag
@vanadium - เกี่ยวกับข้อความของคุณบน ``` sudo tune2fs -l /dev/nvme0n1p2 | grep ตรวจแล้ว``` ใน fstab ของคุณเมื่อรูทพาร์ติชันเป็น 1 ในคอลัมน์สุดท้ายไม่ได้หมายความว่าจะตรวจสอบพาร์ติชันหลังจากเมานต์ 1 ครั้ง หมายเลขนั้นใน fstab คือลำดับความสำคัญที่ควรตรวจสอบพาร์ติชัน ตรวจสอบให้แน่ใจว่าเป็น 1 สำหรับพาร์ติชันรูท หมายความว่าเมื่อใดก็ตามที่มีการตรวจสอบระบบไฟล์ พาร์ติชันรูทจะถูกตรวจสอบ "ก่อน" ในคำตอบของฉัน - ในขั้นตอนที่ 3 เมื่อคุณเรียกใช้ ```tune2fs -c 1 /dev/mapper/vgubuntu-root``` นั่นคือตำแหน่งที่คุณระบุการตรวจสอบระบบไฟล์หลังจากการเมานต์ 1 ครั้ง หวังว่านี่จะช่วยได้
vanadium avatar
cn flag
ฉันทราบความหมายของ 1 ใน fstab ฉันควรจะแสดงออกให้ชัดเจนกว่านี้ กำลังตรวจสอบพาร์ติชัน แต่จะไม่มีการตรวจสอบ *เชิงลึก* (เช่นสแกนโครงสร้างไฟล์อย่างชัดเจน แทนที่จะตรวจสอบว่าวารสารรายงาน "ตกลง" หรือไม่)! ในสมัยก่อนจะมีการบังคับตรวจสอบลึกทุก ๆ 30 เมานต์ ในปัจจุบัน ยังไม่มีการกำหนดการตรวจสอบเชิงลึกและจะเกิดขึ้นก็ต่อเมื่อวารสารไม่สะอาด - แต่มันอาจจะสายเกินไปแล้ว tunefs จะลงทะเบียนการตรวจสอบลึกเท่านั้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา