ระบบ: 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 ระหว่างการบู๊ตระบบ
ขอบคุณ.