Score:2

จะตั้งค่าการหมดเวลาสำหรับการรอ HDD ที่หายไปในขณะที่ระบบบูทได้อย่างไร

ธง it

ระบบ: Ubuntu 20.04 พร้อมการบูต EFI


ชี้แจงว่าทำไมฉันถึงต้องการสิ่งนี้

ฉันกำหนดค่าสอง แลกเปลี่ยน พาร์ติชัน:

  • การสลับหลักหนึ่งครั้งใน HDD ตัวที่สอง ใช้สำหรับการจำศีล (ฟังก์ชั่น Hibernation ดีกว่าที่จะใช้กับ HDD เพื่อยืดอายุการใช้งานของ SSD)
  • พาร์ติชัน swap ที่สองบน SSD กับระบบ นี่เป็นกรณีที่ฉันใช้ SSD เป็นดิสก์เดียว - เมื่อ HDD ตัวที่สองถูกถอดออกและหายไป ในกรณีนี้ ฉันแค่ต้องการให้ระบบทำงานตามปกติ - แม้จะไม่มีฟังก์ชันไฮเบอร์เนต (หรือด้วยฟังก์ชันหนึ่งที่ใช้ swap บน SSD)

ฉันทำอะไรลงไป:

  • สร้างพาร์ติชั่น swap บน HDD
  • ตั้งค่า UUID เป็นการดำเนินการต่อสำหรับ ด้วง.

/etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="กลับมาอย่างเงียบ ๆ =UUID=25d5d4af-736a-4232-a4bb-492499bc1038"
  • ตั้งค่า swap พาร์ติชันทั้งสองเป็น แทง โดยมีลำดับความสำคัญสำหรับการสลับบน HDD และ ไม่ล้มเหลว และ x-systemd.device-timeout=3s ตัวเลือก. ตัวเลือกนี้สำหรับกรณีที่ HDD หายไป หากไม่มีตัวเลือกนี้และเมื่อ HDD หายไป ระบบจะหยุดทำงานระหว่างการบู๊ตเป็นเวลา 90 วินาที

/etc/fstab config สำหรับ swap พาร์ติชัน:

#เปลี่ยนHDD
UUID=25d5d4af-736a-4232-a4bb-492499bc1038 ไม่มีการแลกเปลี่ยน nofail,pri=20,x-systemd.device-timeout=3s 0 0
#สลับบน SDD
UUID=e78a171a-3c52-4cd1-b86a-17709f4b49d9 ไม่มีการแลกเปลี่ยน pri=10 0 0

ฉันมีปัญหาอะไร:

เมื่อเชื่อมต่อ SSD และ HDD กับแล็ปท็อปเข้าด้วยกันแล้ว ทุกอย่างก็ปกติดี เมื่อ HDD หายไประหว่างการบู๊ตระบบ ด้วง พยายามค้นหาพาร์ติชั่นที่มีการสลับบน HDD และแฮงค์ประมาณ 33 วินาที

หลังจากระบบบูตในบันทึก มีข้อความต่อไปนี้เกี่ยวกับการหมดเวลาสำหรับการรอ HDD ที่หายไป (ซึ่งฉันตั้งใจเอาออก) ด้วยพาร์ติชั่น swap:

/var/log/boot.log:[ESC[0;1;31m TIME ESC[0m] หมดเวลารออุปกรณ์ ESC[0;1;39m/dev/disk/by-uuid/46e39f74-e1b3-4705-9bac -84ee2593b4d
4ESC[0ม.

/var/log/syslog:23 ก.พ. 14:23:26 เคอร์เนล Device-2: [ 0.032426] บรรทัดคำสั่งเคอร์เนล: BOOT_IMAGE=/boot/vmlinuz-5.13.0-28-generic root=UUID=a59635ec-2cef-4396- bdf3-be7e4b23fc73 ro ประวัติย่อสาด =UUID=25d5d4af-736a-4232-a4bb-492499bc1038 vt.handoff=7

/var/log/syslog:23 ก.พ. 14:56:14 Device-2 systemd[1]: dev-disk-by\x2duuid-25d5d4af\x2d736a\x2d4232\x2da4bb\x2d492499bc1038.device: งาน dev-disk-by\x2duuid -25d5d4af\x2d736a\x2d4232\x2da4bb\x2d492499bc1038.device/start หมดเวลา

สิ่งที่ฉันต้องการ:

ตั้งเวลารอ HDD หายไม่เกิน 5 วินาที ตอนนี้ตั้งค่าเริ่มต้นไว้ที่ใดที่หนึ่งในระบบเป็นเวลา 30-33 วินาที


ฉันลองต่อไปนี้:

  • หากต้องการค้นหาคุณสมบัติการหมดเวลาใน ด้วง การกำหนดค่า ใน /etc/default/grub สามารถระบุได้สองตัวเลือกที่เกี่ยวข้อง:
  • GRUB_HIDDEN_TIMEOUT
  • GRUB_RECORDFAIL_TIMEOUT

แต่ไม่ใช่สำหรับกรณีนี้ ข้อมูลเกี่ยวกับตัวเลือกนี้สามารถพบได้ที่นี่:

ฉันพยายามวิเคราะห์รหัสสำหรับ ด้วง ใน /etc/grub.d/ และเข้าใจว่าการหมดเวลาดังกล่าวอาจระบุไว้ในการกำหนดค่าการบูตระบบ - ใน ระบบ. ฉันพยายามค้นหาตัวเลือกการหมดเวลาที่เกี่ยวข้องใน ระบบ การกำหนดค่า:

sudo grep -iR หมดเวลา /etc/systemd/
/etc/systemd/system/rescue.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service:ExecStart=/usr/bin/nm-online -s -q --timeout=30
/etc/systemd/system/emergency.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system/multi-user.target.wants/ua-reboot-cmds.service:TimeoutSec=0
/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service:TimeoutStopSec=1800
/etc/systemd/system/multi-user.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service:# บล็อกการเริ่มต้นบริการจนกว่าจะตรวจพบทริกเกอร์หรือหมดเวลา
/etc/systemd/system/sleep.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system.conf:#DefaultTimeoutStartSec=90s
/etc/systemd/system.conf:#DefaultTimeoutStopSec=90s
/etc/systemd/system.conf:#DefaultTimeoutAbortSec=
/etc/systemd/user.conf:#DefaultTimeoutStartSec=90s
/etc/systemd/user.conf:#DefaultTimeoutStopSec=90s
/etc/systemd/user.conf:#DefaultTimeoutAbortSec=
/etc/systemd/logind.conf:#HoldoffTimeoutSec=30s

พยายามเปลี่ยนตัวเลือกที่มีค่า 30 วินาทีเป็น 5 วินาที:

/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service:ExecStart=/usr/bin/nm-online -s -q --timeout=5
/etc/systemd/logind.conf:#HoldoffTimeoutSec=5s

แต่สิ่งนี้ไม่ได้ให้ผลลัพธ์ที่คาดหวัง

ฉันก็พยายามตั้งค่าเหมือนกัน ป้ายกำกับ สำหรับพาร์ติชัน swap และเพื่อระบุให้ดำเนินการต่อกับพาร์ติชัน swap ตามป้ายกำกับนี้ (/dev/disk/by-label/...) ไม่ใช่โดย UUID แต่ในกรณีดังกล่าว ไม่มีการระบุว่าจะสลับพาร์ติชันใดจากทั้งสองพาร์ติชันเพื่อโหลดระบบจากสถานะไฮเบอร์เนต

ฉันพบคำถามที่คล้ายกัน: วิธีตั้งค่าการหมดเวลาสำหรับงานเริ่มต้น systemd "dev-md125.device" (mdadm) แต่ไม่มีรายละเอียดวิธีกำหนดค่าการหมดเวลา ระบบ สำหรับฮาร์ดดิสก์

ที่นี่ มีตัวอย่างวิธีการตั้งค่า หมดเวลาเริ่มต้นวินาที สำหรับ httpd.service

เป็นไปได้หรือไม่ที่จะระบุการหมดเวลาดังกล่าวสำหรับการติดตั้ง HDD ระหว่างการบู๊ตระบบ

ขอบคุณ.

cn flag
อย่าใช้พาร์ติชันให้ใช้ swapfile และปัญหาของคุณไม่มีอยู่จริง: คุณสามารถใส่ swap ในไดเร็กทอรีในแต่ละดิสก์ "(ฟังก์ชั่น Hibernation ดีกว่าที่จะใช้กับ HDD เพื่อยืดอายุการใช้งานของ SSD)" สงสัยมันจะทำให้อายุการใช้งานของ SSD ลดลง SSD ของฉันมีอายุการใช้งานยาวนานกว่าโน้ตบุ๊ก 10 เท่า และเมื่อฉันได้รับโน้ตบุ๊กใหม่ ฉันจะได้รับ SSD ใหม่ (เร็วกว่ามาก) สิ่งที่คุณต้องการจริงๆ คือการสำรองข้อมูลส่วนตัวใน SSD
it flag
ไม่ได้คิดไปในทิศทางนี้ นั่นน่าสนใจ. ขอบคุณสำหรับความคิด! ฉันมี SSD ของ Toshiba เก่าค่อนข้างดี - ไม่ต้องการฆ่ามันด้วยการจำศีล 3 ครั้งต่อวัน )
cn flag
โอ้ มันอาจจะเป็นปัญหาจริงๆ ssds รุ่นเก่ามีบั๊กเล็กๆ น้อยๆ จำนวนมากในการจัดเก็บข้อมูล ฉันขอแนะนำว่ามันอาจจะดีกว่าที่จะไม่ไฮเบอร์เนตหากคุณใช้ SSD ในการบู๊ตการบูตนั้นรวดเร็วมาก ฉันมักจะปิดเครื่องเสมอ (เวลาบูตของคุณจะต่ำกว่า 15 วินาที ฉันเดาว่า ?)
it flag
@Rinzwind ใช่ฉันมักจะใช้การปิดเครื่อง เวลาบูตค่อนข้างเร็ว - ประมาณ 20-30 วินาที แต่บางครั้งการไฮเบอร์เนตก็มีประโยชน์เช่นกัน - แอพจำนวนมากที่มีสถานะสามารถบันทึกในโหมดไฮเบอร์เนตได้ และการรอ 1 นาทีในขณะที่โหลดไฮเบอร์เนตจาก HDD นั้นไม่ใช่ปัญหาสำหรับฉัน นอกจากนี้ หาก swap อยู่บน HDD การไฮเบอร์เนตจะฟรีสำหรับ SSD - ฉันหมายความว่ามันจะไม่เสียหาย (แต่แน่นอนว่ามันไม่เร็วเท่า SSD) และการตั้งค่าการไฮเบอร์เนตยังเปิดตัวเลือก 'ไฮบริดสลีป' และ 'สลีปแล้วไฮเบอร์เนต' ซึ่งบางครั้งก็มีประโยชน์เช่นกัน ดังนั้นฉันคิดว่าการตั้งค่านี้คุ้มค่า
it flag
@Rinzwind ฉันวิเคราะห์แนวทางด้วย swapfiles และไม่เข้าใจว่าจะช่วยในสถานการณ์ของฉันได้อย่างไร ในกรณีของ swapfiles (ทั้ง - บน HDD และ SDD) ฉันยังต้องระบุพาร์ติชัน UUID ของตำแหน่ง swapfiles ในคุณสมบัติ `Grub2` `GRUB_CMDLINE_LINUX_DEFAULT` ในรูปแบบ `resume=UUID= resume_offset=` ที่มา: [HOWTO: ใช้ swapfile แทนพาร์ติชันและไฮเบอร์เนต](https://ubuntuforums.org/showthread.php?t=1042946) และต้องมีปัญหาเดียวกันระหว่างการบู๊ตโดยไม่มี UUID ซึ่งเป็นที่ตั้งของ swapfile คุณช่วยอธิบายได้ไหมว่าพวกเขาสามารถช่วยได้อย่างไร

โพสต์คำตอบ

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