Slow boot -“ งานเริ่มต้นกำลังทำงานสำหรับ dev-disk-by …”


108

ฉันจำไม่ได้เมื่อเกิดปัญหาขึ้น แต่เป็นไปได้เมื่อฉันย้ายอิมเมจ VMWare Ubuntu ของฉันไปยัง SSD ภายนอกเพื่อที่ฉันจะสามารถใช้ระบบปฏิบัติการกับพีซีเครื่องใดก็ได้ของฉัน ไม่มีการเชื่อมโยงหลายบน Google เกี่ยวกับปัญหา fstabแต่คนที่ปรากฏพูดคุยเกี่ยวกับ ตัวอย่างเช่นการบูตช้า - "งานเริ่มต้นทำงานสำหรับ dev-disk-by ... " คืออะไร - ฟอรั่ม

ภาพหน้าจอ

กล่าวถึงต้องลบพาร์ติชัน swap และสร้างอีกครั้ง

ฉันสามารถลองทำสิ่งนี้กับ Gparted ได้ แต่ความกังวลหลักของฉันคือการสูญเสียการตั้งค่าปัจจุบันของฉันใน Ubuntu เนื่องจากฉันไม่แน่ใจว่าจะเกิดอะไรขึ้นถ้าฉันยุ่งกับการสลับตามที่แนะนำในเธรด ใครช่วยได้บ้าง


คุณอาจต้องการโคลน SSD ของคุณและจากนั้นคุณสามารถทำให้ตัวเองออกมา :) (ลองใช้CloneZillaเพื่อสิ่งนี้)
Grammargeek

ใช่ฉันเดาได้เลย ฉันจะรอจนกว่าฉันจะกลับบ้านจากวันหยุดเพื่อที่ฉันจะสามารถย้ายไปยังบางสิ่งที่ฉันมีพื้นที่มากขึ้น
cpd1

1
ฉันสิ้นสุดการแก้ไขสิ่งนี้ ฉันไม่คิดว่าจะมีการแลกเปลี่ยนหากฉันไปโดย Gparted ฉันสิ้นสุดการสร้างรายการหนึ่งและเปลี่ยนรายการใน fstab สิ่งนี้ใช้ได้และไม่มีการบูต 90 วินาทีอีกต่อไป
cpd1

1
หากคุณแก้ไขปัญหาของคุณเองให้ตอบคำถามของคุณเองแล้วคลิกที่เช็คเพื่อทำเครื่องหมายว่าแก้ไขแล้ว :)
Grammargeek

1
เหมาะสมแล้ว ... ฉันได้เพิ่มแล้ว
cpd1

คำตอบ:


115

หากคุณได้รับ "งานเริ่มต้นเริ่มต้นโดย dev-disk-by .. " ตามด้วยการหน่วงเวลา 90 วินาทีระหว่างการบู๊ตแต่ละครั้งให้ทำตามขั้นตอนต่อไปนี้:

  1. ติดตั้ง gparted โดยใช้ Software Center
  2. เปิด gparted และดูว่าพาร์ทิชันใดที่อูบุนตูใช้อยู่ในปัจจุบัน
  3. แก้ไขไฟล์ fstab โดยใช้บรรทัดด้านล่าง

    sudo -H gedit /etc/fstab
    
  4. ค้นหาอุปกรณ์ที่คุณไม่ได้ใช้อยู่ในปัจจุบัน

  5. แทรก a #และช่องว่างที่จุดเริ่มต้นของบรรทัดนั้นคอมเม้นท์

  6. รีเซ็ตหวังว่ามันจะเหมาะกับคุณ!


3
คำแนะนำทีละขั้นตอนช่วยให้ทุกคน! ขอบคุณ!
John Hall

ฉันแท็กคำตอบของคุณเป็นคำตอบตั้งแต่คุณทำตามขั้นตอน
cpd1

9
+1 ... สำหรับผู้ที่ไม่สามารถค้นหาได้/etc/fstabคุณสามารถตรวจสอบได้/etc/crypttab- นั่นคือกรณีของฉัน
Grzegorz

7
หากเป็นรหัสบล็อกที่มีการเปลี่ยนแปลงแทนที่จะแสดงความคิดเห็นฉันต้องการแก้ไขอุปกรณ์ id - ใช้ lsblk -f เพื่อดูว่าอุปกรณ์ใดเชื่อมโยงกับ id ใดและแทนที่ id
user1708042

3
สิ่งที่ใช้ได้ผลสำหรับฉันคือเปลี่ยนขั้นตอนที่ 4 เป็น: "คัดลอก UUID ที่พบใน gparted สำหรับอุปกรณ์ที่เป็นสาเหตุของความล่าช้าในการบูต" และขั้นตอนที่ 5 เป็น: "แทนที่ที่ที่พบอุปกรณ์ในไฟล์ fstab" บางครั้งเมื่อคุณเปลี่ยนพาร์ติชั่นการเคลื่อนย้าย UUID จะเปลี่ยนและนั่นคือสาเหตุของปัญหา คุณเพียงแค่ต้องแก้ไข UUID ใหม่สำหรับพาร์ติชันที่มีการปรับเปลี่ยน
m4l490n

35

ดูเหมือนว่าปัญหานี้เกิดขึ้นเนื่องจากข้อเท็จจริงที่ว่าแม้ว่า fstab มีรายการแลกเปลี่ยน แต่จริงๆแล้วไม่มีอยู่จริง ฉันใช้ GParted เพื่อปรับขนาดพาร์ติชันและสร้าง Swap ใหม่ ฉันคัดลอก UUID ไปยังไฟล์ fstab ...

  1. ตอนนี้ฉันมี swap
  2. และการบูตจะลดลงไปภายในไม่กี่วินาทีเทียบกับ 90+ วินาที

5
ฉันปรับขนาดพาร์ติชันหลักของฉัน (ลบ / สร้าง swap ใหม่) และพบปัญหานี้ ฉันใช้ 'sudo blkid' เพื่อแสดงรายการอุปกรณ์โดย UUID และกว่าที่ใช้ UUID ใหม่ใน / etc / fstab
Brad Goss

32

ฉันมีปัญหาเดียวกันหลังจากปรับขนาดพาร์ติชันหลักของฉันบน VM ของฉันตั้งแต่gparted liveบังคับให้ฉันลบและกำหนดค่าเริ่มต้นให้สลับใหม่ ทำให้ UUID ใหม่ถูกตั้งค่าที่ไม่ตรงกับไฟล์ fstab

เพื่อหลีกเลี่ยงปัญหาใน/etc/fstabคุณสามารถอย่างใดอย่างหนึ่ง

  • แทนที่ swap UUID ด้วยอันใหม่ (รันsudo blkidเพื่อค้นหา) หลังจากปรับขนาดพาร์ติชันหลัก

  • หรือคอมเม้นท์ swap พาร์ติชั่นก่อน (หรือหลัง) การปรับขนาดพาร์ติชั่นหลัก

ฉันอยากจะแนะนำอดีตเพราะมันเป็นวิธีที่ระบบปฏิบัติการมีความหมายที่จะติดตั้ง


ช่วยฉันด้วยเช่นกันหลังจากย้ายพาร์ทิชัน swap ของฉันแล้ว
po.pe

17

/dev/mapper/cryptswap1ในกรณีที่ผมเคยใช้แลกเปลี่ยนการเข้ารหัสและการเริ่มต้นงานดังกล่าว เพื่อแก้ปัญหาฉันยังต้องลบไฟล์/etc/crypttabนอกเหนือจากขั้นตอนที่อธิบายในคำตอบโดย William MacDonald


6

เมื่อปรับขนาดหรือลบพาร์ติชันด้วย gparted คุณมักจะต้องสร้างพาร์ทิชัน swap ใหม่

จากนั้นจึงจำเป็นต้องเปิดใช้งานการแลกเปลี่ยนผ่าน gparted หลังจากการสร้าง (มีคำสั่ง "เปิดใช้งานการสลับ")

นอกจากนี้คุณต้องคัดลอก UUID ใหม่ลงใน / etc / fstab เพื่อติดตั้งมิฉะนั้นตอนบู๊ต OS จะพยายามค้นหา แต่จะไร้ประโยชน์เพราะไฟล์ fstab มี UUID ที่อ้างถึงการแลกเปลี่ยนเก่า Gparted ส่งข้อมูลสำหรับ UUID แต่คุณสามารถเรียกใช้ในเทอร์มินัลได้อย่างง่ายดาย:

sudo blkid

เพื่อหามัน


4

ฉันมีปัญหาเดียวกันเมื่อทำการบูท

ใน/etc/fstabไฟล์ของฉันพาร์ติชันของฉันที่กำหนดเป็น/dev/sda1, /dev/sda2ฯลฯ แต่เมื่อบูตหลายครั้งปรากฏข้อความ " งานเริ่มต้นทำงานสำหรับ dev-sdx " ("x" กำหนดหน่วยหรือพาร์ทิชันที่ได้รับผลกระทบ)

เพื่อแก้ปัญหานี้ฉันเปลี่ยนค่าของ/dev/sdxUUID ของพาร์ติชัน หากต้องการดู UUID lsblk -fจากระยะขั้ว จากนั้นคัดลอก UUID ของพาร์ทิชันได้รับผลกระทบและเขียนไว้ใน/etc/fstabไฟล์เปลี่ยน/dev/sdaxดังนี้การเปลี่ยนแปลง/dev/sda1UUID=xxxxxxxxxxxxxxxxxx

มันใช้งานได้สำหรับฉันฉันหวังว่าข้อมูลนี้จะเป็นประโยชน์


ใช่. นี่เป็นปัญหาที่ UUID แก้ไขได้อย่างแม่นยำ ระบบจะเมาต์พาร์ติชันใด ๆ ด้วย ID นั้นโดยไม่คำนึงถึงอุปกรณ์ที่อยู่ในหรือที่ตั้งของพาร์ติชัน ด้วยข้อเสียที่คุณต้องเปลี่ยน UUID ทุกครั้งที่คุณทำลาย / สร้างพาร์ติชันหรือติดตั้งไดรฟ์ใหม่ และการทำสำเนาพาร์ติชั่น (คัดลอก / วางแบบแยกส่วน) จะสร้างสำเนาด้วย UUID เดียวกันซึ่งอาจทำให้เกิดปัญหาได้หากต้นฉบับและสำเนามีทั้งแบบออนไลน์พร้อมกัน สำหรับคนส่วนใหญ่นี่เป็นเรื่องปกติ แต่คุณต้องจำไว้เสมอเมื่อทำการโคลน / เปลี่ยนไดรฟ์
David C.

3

การบู๊ตของฉันช้าลงเพราะฉันเปลี่ยนไดร์ฟและ UUID ไม่ตรงกัน สิ่งนี้ทำให้อูบุนตูทำการสแกนระหว่างการบู๊ต

ฉันสลับไดร์ฟบ่อย ๆ หากการติดตั้งของคุณอยู่ในสถานที่เดียวกันเสมอ (เช่นของฉัน) คุณสามารถลบ UUID และวางเส้นทางโดยตรงเพื่อป้องกันข้อผิดพลาดในการสแกนที่เกิดขึ้น ...

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/sda1 /               ext4    errors=remount-ro 0       1
/dev/sda2 none            swap    sw              0       0

ข้อเสนอแนะนี้จะเพิ่มความเร็วในการบูตได้อย่างไร การอ้างอิงใด ๆ
Mostafa Ahangarha

ฉันตอบคำถามข้อผิดพลาดของเขาที่ทำให้บูตช้า ฉันทำให้คำตอบของฉันชัดเจนขึ้น
Dan

1
ใช่การติดตั้งด้วยชื่ออุปกรณ์หลีกเลี่ยงปัญหา แต่มันก็สร้างปัญหาที่ UUIDs (และป้ายชื่อไดรฟ์ข้อมูล) มีไว้เพื่อแก้ปัญหา - การแนบไดรฟ์ไปยังสถานที่ต่าง ๆ (เช่นจากอินเตอร์เฟซ SATA หนึ่งไปยังอีกอินเตอร์เฟสหนึ่ง) จะเปลี่ยนชื่ออุปกรณ์ ทำลายการติดตั้งของคุณ คุณต้องตัดสินใจว่าปัญหาใดที่จะอยู่ได้ง่ายขึ้น แต่ให้แน่ใจว่าคุณจำการตัดสินใจของคุณได้เพราะมันอาจทำให้คุณหงุดหงิดมากเมื่อมีปัญหาเกิดขึ้นเพราะคุณลืม
David C.

3

สถานการณ์หลัก:

ตอบในรายละเอียดแล้ว ... (คุณต้องตรวจสอบ UUID ภายใต้ไฟล์เหล่านั้น)

/etc/crypttab 
/etc/fstab
/etc/grub.d/40_custom 
/boot/grub2/grub.cfg

สถานการณ์ทางเลือก I - Udev:

สิ่งนี้อาจเกิดจากudevหากคุณมีกฎของสคริปต์ภายใต้/etc/udev/rules.d/ที่ไม่ได้หมายถึงให้รันตอนบูทหากสคริปต์ล้มเหลวมันจะทำให้ขั้นตอน fstab นั้นดำเนินต่อไปตลอดไปเพียงแก้ไขสคริปต์ของคุณเพื่อให้ตรงกับความต้องการของคุณหรือลบออก

ทางเลือกสถานการณ์ที่สอง - Crypted Dev:

พาร์ติชันที่เข้ารหัสอาจทำให้เกิดความสับสนเนื่องจากพาร์ติชันหลักมี UUID และที่แมปที่ถอดรหัสแล้วมี UUID อื่นที่แตกต่างจากพาร์ติชันหลักสำหรับพาร์ติชันเดียวที่พวกเขาจะต้องกำหนดไว้ในที่ต่าง ๆetc/crypttabและ/etc/fstab

# lsblk -o name,uuid,mountpoint
├─sda2                         727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0)          P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi

ต้องระบุ UUID จริง etc/crypttab

# cat /etc/crypttab
sda2_crypt  UUID=727fa348-8804-4773-ae3d-f3e176d12dac  none  luks

UUID เสมือนต้องอยู่ที่ /etc/fstab

# cat /etc/fstab
UUID=P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi / ext4 defaults,errors=remount-ro 0 1

สถานการณ์ทางเลือก III - Ghost Dev:

อุปกรณ์ที่ติดตั้งเพื่อติดตั้งในเวลาบูต แต่ไม่มีอยู่ในระบบหรือถอดออกเช่นไดรฟ์ usb

ชำระเงินอุปกรณ์ที่เชื่อมต่อจริงด้วยlsblk -o name,uuid,mountpointและแก้ไข/etc/fstabเพื่อเก็บเฉพาะอุปกรณ์ที่เชื่อมต่อ หรือปล่อยอุปกรณ์ที่ไม่ได้เชื่อมต่อไว้ที่นั่น แต่ตั้งค่าให้ละเว้นอุปกรณ์เมื่อบู๊ตด้วยตัวเลือกnoautoและตั้งค่าบรรทัดเช่นนี้

UUID=BLA-BLA-BLA /mount ext4 option,noauto,option 0 0

ตรวจสอบบันทึกของระบบ

journalctl -ab 

systemd-analyze blame

systemd-analyze critical-chain

systemctl status dev-mapper-crypt_sda2.device

systemctl status systemd-udev-settle.service

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

2

นอกเหนือจากการตรวจสอบ/etc/fstabหรือ/etc/crypttabตามที่กล่าวไว้ในคำตอบอื่น ๆ แล้วให้ตรวจสอบ UUID ที่มาจากพารามิเตอร์เคอร์เนล/etc/default/grubด้วย ในขณะที่ฉันสับสนมากโดยระบบที่มี cromulent สมบูรณ์แบบ/etc/fstabเท่านั้นที่จะค้นพบresume=…พารามิเตอร์เคอร์เนลในการกำหนดค่าด้วง


1
สิ่งนี้ช่วยให้ฉันแก้ปัญหาได้ / etc / fstab ของฉันใช้ได้ นอกจากนี้/etc/default/grubฉันยังต้องทำการเปลี่ยนแปลง/boot/efi/EFI/fedora/grub.cfgด้วย linux "resume = UUID = ... " พารามิเตอร์ล้าสมัยหลังจากฉันเปลี่ยนพาร์ติชั่น swap ด้วยตนเอง
Stphane

1

คุณสามารถข้ามการรอและไปที่หน้าจอเข้าสู่ระบบของคุณโดยตรงโดยใช้ ' Ctrl+ c' จากนั้นทำงานบนโซลูชัน บางครั้งสิ่งนี้จะดำเนินต่อไปตลอดกาลถ้าไม่


นั่นคือ Ctrl จริง ๆ , ปุ่มบวกและ c?
muru

ใช่นั่นแหล่ะ :)
Ramon Suarez

0

ฉันรู้ว่ามันเก่า แต่ฉันสะดุดกับปัญหานี้ข้อผิดพลาดเดียวกันในขณะที่โคลนการติดตั้งด้วย rsync ไม่มีข้อผิดพลาดใน fstabปัญหาได้รับการแก้ไขหลังจากอัปเดต initrdfs ด้วยมือ เพื่อบรรลุเป้าหมายนั้น

  1. บูตเครื่องในการติดตั้งที่ใช้งานได้ (เครื่องมัลติบูต livecd เป็นอย่างอื่น)

  2. เมาท์พาร์ติชันรูทของระบบด้วยปัญหา

  3. mount dev, sys และ proc สำหรับ chroot ที่ใช้งานได้

  4. chroot เป็นรูทของ filesistem

  5. รัน mkinitrd

  6. ออกจาก chroot และรีบูต

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