ฉันพยายามที่จะเข้าใจสิ่งที่ฉันต้องทำเพื่อเร่งความเร็วการบูตด้วย Ubuntu 16.04 ฉันได้ทำงาน dmesg และบันทึกเอาท์พุทที่นี่ ทุกอย่างดูเหมือนจะผิดพลาดหลังจากนั้นประมาณ 10 วินาที
ฉันพยายามที่จะเข้าใจสิ่งที่ฉันต้องทำเพื่อเร่งความเร็วการบูตด้วย Ubuntu 16.04 ฉันได้ทำงาน dmesg และบันทึกเอาท์พุทที่นี่ ทุกอย่างดูเหมือนจะผิดพลาดหลังจากนั้นประมาณ 10 วินาที
คำตอบ:
คุณสามารถลองค้นหาสิ่งที่ใช้เวลามากที่สุดกับ systemd
systemd-analyze blame
การแก้ไข / etc / fstab ของUUIDของพื้นที่สว็อป (เพื่อให้ตรงกับเอาท์พุตของsudo blkid
) นั้นทำงานได้อย่างมีเสน่ห์!
หมายเหตุ : หลังจากนั้นหากมีรายการการแลกเปลี่ยนใด ๆ ใน/etc/crypttab
ไฟล์คุณควรเปลี่ยนพารามิเตอร์ตัวที่สองเพื่อให้ตรงกับพื้นที่สว็อปของคุณไม่ว่าจะด้วย UUID หรือพา ธ (เช่น UUID = บางสิ่งหรือ / เส้นทาง / เป็น / swap)
บน SSD การบู๊ตเริ่มจาก 2 นาทีถึงน้อยกว่า 10 วินาที
สิ่งคือฉันเพิ่งอัพเกรดปกติจาก 14.04 เป็น 16.04 ไม่ยุ่งกับพาร์ทิชันเมื่อปัญหานี้เริ่ม เห็นได้ชัดว่ามีปัญหาบางอย่างเกี่ยวกับขั้นตอนการอัพเกรด
ฉันพบปัญหาคล้ายกันกับเวลาบูตนานกว่าหลังจากอัพเกรด
ปัญหาคืออะไร? ฉันลบพื้นที่สว็อปของฉันดังนั้นไฟล์ / etc / fstab ของฉันและระบบไฟล์ใหม่จึงมีข้อขัดแย้ง ตัวโหลดการบูตรอเกือบ 1 ล้าน 30 วินาทีเพื่อค้นหา
ฉันจะแก้ไขปัญหาได้อย่างไร เรียกใช้ sudo blkid
เปิดไฟล์ / etc / fstab ของคุณและเปรียบเทียบการจับคู่ของ uuid กับพาร์ติชันที่คุณมี หากมีการเปลี่ยนแปลงไม่ตรงกันนั้นและรีบูต
dmesg
การส่งออกในการแสดงคำถามที่ OP มีปัญหาที่แตกต่างกัน
มันเป็นวิธีแก้ปัญหา แต่วิธีนี้ลดเวลาการบูทของฉันลงอย่างมาก (จาก 1 นาที 24s เป็น 16 วินาที)
sudo vim /etc/systemd/system.conf
ไม่ใส่หมายเหตุพารามิเตอร์ทั้งสองนี้และตั้งค่าการหมดเวลาที่ต้องการ:
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
หมายเหตุ: โปรดปรับค่าเหล่านี้ให้เหมาะสมกับความต้องการฮาร์ดแวร์ของคุณ ~ 5 - 60s
ตามที่กล่าวไว้ที่นี่พารามิเตอร์เหล่านี้ปรับเปลี่ยนกำหนดเวลาเริ่มต้นสำหรับการเริ่มต้นและการหยุดของหน่วยงานเช่นเดียวกับเวลาเริ่มต้นที่จะนอนหลับระหว่างการรีสตาร์ทอัตโนมัติของหน่วยตามที่กำหนดค่าต่อหน่วยในTimeoutStartSec=
, TimeoutStopSec=
และRestartSec=
(สำหรับการให้บริการดู systemd.service (5) สำหรับ รายละเอียดเกี่ยวกับการตั้งค่าต่อหน่วย)
สำหรับหน่วยบริการที่ไม่ใช่ชุดเริ่มต้นDefaultTimeoutStartSec=
และเริ่มต้นถึง 90s ค่าเริ่มต้นถึง 100msTimeoutSec= value
DefaultTimeoutStartSec=
DefaultTimeoutStopSec=
DefaultRestartSec=
แก้ไข - รายละเอียดเพิ่มเติม:
ฉันวิเคราะห์ลำดับการบู๊ตด้วยsystemd-analyze plot > sequence.svg
ที่แสดงว่าบริการไม่สามารถเริ่มระบบปฏิบัติการที่อัปเกรดแล้วได้ มี 3-1 เป็นผิดพลาดsendmailภูตแล้วpowerd.service & NetworkManager-รอ online.service เนื่องจากมันไม่ใช่ความคิดที่ดีที่จะปิดใช้งานบริการ NetworkManager ทั้งหมดฉันเพียงแค่ปล่อยให้มันหมดเวลาหลังจาก 10 วินาทีและใช้กฎนี้ไปทั่วโลก
สิ่งนี้อาจเกี่ยวข้องกับปัญหาของระบบไฟล์ คุณอาจต้องการตรวจสอบลิงค์นี้เพื่อดูว่าการซ่อมแซมระบบไฟล์ของคุณปรับปรุงเวลาบูต: https://help.ubuntu.com/community/FilesystemTroubleshooting
ฉันมีปัญหาที่คล้ายกันฉันเพิ่งแก้ไข: ฉันใช้ Ubuntu 16.04 บน SSD ฉันใช้แฟลชไดรฟ์เป็นพาร์ทิชันสลับ ไดรฟ์ถูกเคลื่อนย้ายโดยไม่ตั้งใจเล็กน้อยและใช้เวลาบูตนานกว่า 3 นาที ฉันใส่มันกลับอย่างถูกต้องและตอนนี้ทุกอย่างเรียบร้อยดี ในกรณีที่คุณลอง smartctl หรือ fsck และระบบไฟล์ของคุณก็โอเคลองถอดแฟลชไดรฟ์ (หรืออุปกรณ์ต่อพ่วงอื่น ๆ ) และดูว่ามันทำงานอย่างไร โชคดี!
จากการส่งออกของ pastebin ของคุณมีสองอย่างที่ฉัน:
EXT4-fs (sda5): re-mounted
คุณอาจต้องการfsckไดรฟ์ข้อมูลนี้และดูข้อมูลสมาร์ทสำหรับไดรฟ์นั้น
และ
[ 31.022220] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 45.720952] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 45.761548] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
คุณอาจลองปิดการใช้งาน IPV6ในการเชื่อมต่อเครือข่ายของคุณหากการเชื่อมต่อของคุณไม่รองรับ
คำแนะนำของ user536489 ต่อไปนี้:
ระบบตำหนิการวิเคราะห์
ตรวจสอบว่ามีบริการที่ใช้เวลานานในการเริ่มต้นและตั้งค่าการหมดเวลาที่ต่ำกว่า:
sudo vim /lib/systemd/system/networking.service
เปลี่ยนเพื่อสิ่งที่ต้องการTimeoutStartSec
10s
สถานะman pageใช้ค่าหน่วยน้อยในหน่วยวินาทีหรือค่าการขยายเวลาเช่น "5 นาที 20 วินาที" ผ่าน "อนันต์" เพื่อปิดใช้งานตรรกะการหมดเวลา