บูตช้าเวลาโหลดเคอร์เนลที่ยาวนานเนื่องจากอุปกรณ์ทำงานผิดปกติ


43

บางครั้งกระบวนการบู๊ตของฉันใช้เวลานานเกินไป (เกือบ 1 นาที)

systemd-analyse time 

แสดงให้เห็นว่าเคอร์เนลใช้เวลา 35.765s

มองไปที่dmesgดูเหมือนว่าปัญหาเกิดขึ้นกับการติดตั้งระบบไฟล์:

...
[    2.186084]  sdb: sdb1 sdb9
[    2.186919] sd 2:0:0:0: [sdb] supports TCG Opal
[    2.186922] sd 2:0:0:0: [sdb] Attached SCSI disk
[    2.499795] ata5: SATA link down (SStatus 0 SControl 300)
[    2.844320] clocksource: Switched to clocksource tsc
[   35.670493] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[   35.782128] ip_tables: (C) 2000-2006 Netfilter Core Team
[   35.803610] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
...

/etc/fstabหน้าตาของฉันเป็นแบบนี้:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=3996-2381  /boot/efi       vfat    umask=0077      0       1
#/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

ฉันจะแก้ไขปัญหานี้ได้อย่างไร

แก้ไข: มองอย่างใกล้ชิดที่ข้อความบูต (หลังจากลบตัวเลือกที่เงียบในด้วง) ฉันเห็นเส้นที่น่าสงสัย:

gave up waiting for suspend/resume device

ฉันคิดว่าการแลกเปลี่ยนของฉันถูกเข้ารหัสและฉันก็คิดว่า UUID /etc/initramfs/conf.d/resumeนั้นไม่ตรงกับอุปกรณ์ใด ๆ

ฉันควรปิดใช้งานประวัติย่อ / หยุดชั่วคราวหรือไม่ และวิธีการทำเช่นนั้น?


6
ปัญหาคือที่ `` `เริ่มต้น: การรัน / สคริปต์ / local-premount` `` มันถูกแสดงระหว่างการบู๊ต (ถ้าคุณปิดการใช้งานเงียบ) เนื่องจากเหตุผลบางประการสคริปต์ก่อนกำหนดนี้ใช้เวลา 30 วินาทีหรือมากกว่านั้น
Sudhanshu

1
คำถาม / คำตอบนี้มีประโยชน์เพราะมันช่วยแก้ไขข้อผิดพลาดใน Lubuntu Bionic ดังนั้นโปรดช่วยเปิดใหม่อีกครั้ง :-)
sudodus

คำตอบ:


58

ตกลงฉันพบวิธีแก้ปัญหาแล้วขอบคุณความคิดเห็นของ Sudhanshu

ปัญหาเกิดขึ้นเนื่องจากการแลกเปลี่ยนของฉันถูกเข้ารหัส ดังนั้นlocal-premountสคริปต์ใน initramfs จึงกำลังรออุปกรณ์ swap ที่ไม่สามารถใช้งานได้จนกว่าจะหมดเวลา gave up waiting for suspend/resume deviceข้อความที่เกี่ยวข้องคือ

การปิดใช้งานนี้ (ขณะที่กลับมาจากการแลกเปลี่ยนเป็นไปไม่ได้ที่มีการแลกเปลี่ยนการเข้ารหัสและฉันไม่ได้ใช้จำศีลอยู่แล้ว) /etc/initramfs-tools/conf.d/resumeผมการแก้ไขไฟล์นี้:

ในไฟล์นี้มีบรรทัดด้วย

RESUME=none

(แทน UUID ที่อยู่ที่นี่) จะปิดการใช้งานรอให้อุปกรณ์ทำงานต่อ

วิ่ง

sudo update-initramfs -u

เพื่อใช้การเปลี่ยนแปลง

ระบบสามารถบู๊ตได้ตามปกติ


1
ฉันคิดว่าคุณได้รับผลกระทบจากข้อผิดพลาด # 1763611 รองเท้าบูเบียไบโอนิคของ Lubuntu ช้ากว่ารสชาติอูบุนตูอื่น ๆ ด้วย SSD บางตัว และคุณได้แสดงให้เห็นถึงวิธีการ
กำจัด

3
ยอดเยี่ยม! ขอบคุณสำหรับการแก้ไข ฉันดึงผมออกมาแล้ว!
Murray

ขอบคุณสำหรับการแก้ไข
Adhikari Bishwash

มีปัญหามาเป็นเวลานานที่เกิดจาก zram (ไม่มีพาร์ทิชัน swap) ฉันแค่ซ่อมมันแล้วขอบคุณ!
Pierre-Damien

3

ฉันยังเห็นสิ่งนี้ใน Linux Mint (จาก Ubuntu) และใช้เวลาในการหาว่าเกิดอะไรขึ้น

สิ่งนี้จะเกิดขึ้นหากระบบของคุณติดตั้งบน LVM และใช้ปริมาตร LVM เป็นดิสก์ swap

มีข้อผิดพลาดที่เกิดขึ้นเป็นเวลานานซึ่งไฟล์ประวัติย่อมี UUID ไม่ถูกต้อง (ซึ่งไม่ถูกต้องสำหรับ LVM) แทนที่จะเป็นเส้นทางอุปกรณ์ที่ควรมี ดูhttps://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

คุณสามารถแก้ไขได้โดยแก้ไข/etc/initramfs-tools/conf.d/resumeไฟล์และแทนที่ UUID ด้วยพา ธ อุปกรณ์ของ swap drive ตัวอย่างคำสั่งต่อไปนี้จะทำเพื่อคุณโดยใช้ไดรฟ์ swap ตัวแรกที่พบและรายงานโดย blkid:

sudo bash -c 'mv /etc/initramfs-tools/conf.d/resume /tmp/resume.bak; echo RESUME=$(blkid | \grep -I swap | head -n 1 | cut -d : -f 1) > /etc/initramfs-tools/conf.d/resume'

2

ไม่มีวิธีแก้ไขปัญหาด้านบนหรือที่อื่นใดทำงานให้ฉัน แต่ฉันได้พบวิธีแก้ปัญหาซึ่งช่วยลดเวลาบูตของฉันเป็น 40 วินาทีจาก 2 นาทีและ 10 วินาที

ฉันใช้ในการสร้างและลบพาร์ทิชันการสลับและบันทึกเหล่านี้อยู่ในไฟล์ etc / fstab ดังนั้นระบบของฉันพยายามเมาต์พาร์ติชั่น swap ที่สร้างขึ้นก่อนหน้านี้ซึ่งไม่มีอยู่ ดังนั้นให้ฉันอธิบายสิ่งที่ฉันทำทีละขั้นตอน

  1. ฉันรันคำสั่งนี้sudo blkid | grep swapเพื่อหาพาร์ติชัน swap ของฉัน มีสอง แต่ไม่มีอยู่จริง (ไม่ได้อ้างถึงพาร์ติชั่นของฉัน)

  2. ดังนั้นฉันจึงไปแก้ไขไฟล์ / etc / fstab โดยพิมพ์ sudo gedit /etc/fstab

  3. จากนั้นฉันก็รู้ว่ามีไฟล์ swap มากมายที่ฉันลบไป แต่กลับมามีอยู่ในไฟล์นี้ต่อไป ดังนั้นผมจึงเรียกว่าขั้นตอนที่ 1 และลบพาร์ทิชันที่มีอยู่ไม่ได้

โปรดดูภาพหน้าจอสองไฟล์ก่อน & หลัง / etc / fstab หลังจากการล้างข้อมูลทุกอย่างทำงานเป็นปกติ

นี่คือไฟล์/ etc / fstab ที่ไม่มีการแก้ไขไม่มีการแก้ไข / etc / fstab

และที่นี่หลังจากเช็ดพาร์ทิชั่นที่ไม่มีอยู่ให้ทำความสะอาด / etc / fstab


สิ่งนี้ใช้ได้สำหรับฉัน ขอบคุณ
Abanoub Hanna

2

ฉันพบปัญหานี้หลังจากติดตั้งลินุกซ์ 2 ตัวที่แตกต่างกัน อย่างใดอย่างหนึ่งในหนึ่ง distro, swap พาร์ทิชันได้รับ UUID อื่นที่ได้รับมอบหมายจากนั้นก็คาดว่า วิธีแก้ปัญหาของฉันคือ: ก่อนอื่นให้รันsudo blkidUUID ที่เหมาะสมสำหรับพาร์ทิชัน swap คัดลอก UUID ของการแลกเปลี่ยน วางไว้ในเพื่อให้คุณได้รับ/etc/initramfs-tools/conf.d/resume RESUME=_the_correct_UUID_ตอนนี้เรียกsudo update-initramfs -uใช้การเปลี่ยนแปลงนี้

ถัดไปตรวจสอบ / etc / fstab และเปลี่ยน UUID ของพาร์ทิชัน swap ที่นั่นหากจำเป็น (ฉันต้อง)


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