Khởi động chậm - Một công việc bắt đầu đang chạy cho dev-đĩa-bởi


108

Tôi không nhớ khi sự cố bắt đầu xảy ra nhưng có khả năng là khi tôi chuyển hình ảnh Ubuntu VMWare của mình sang ổ SSD ngoài để tôi có thể sử dụng HĐH trên bất kỳ PC nào của mình. Không có nhiều liên kết trên Google về vấn đề này nhưng những liên kết xuất hiện nói về nó fstab. Ví dụ: Khởi động chậm - "Công việc bắt đầu đang chạy cho dev-đĩa-by ..." là gì? - Diễn đàn OpenSUSE .

Ảnh chụp màn hình

Các đề cập phải xóa phân vùng trao đổi và tạo lại nó.

Tôi có thể thử làm điều này với Gparted nhưng mối quan tâm chính của tôi là mất thiết lập hiện tại trong Ubuntu vì tôi không hoàn toàn chắc chắn điều gì sẽ xảy ra nếu tôi gặp rắc rối với trao đổi như được đề xuất trong chuỗi. Bất cứ ai có thể giúp đỡ?


Bạn có thể muốn sao chép ổ SSD của mình và sau đó bạn có thể tự mình loại bỏ :) (Hãy thử CloneZilla cho việc này)
Grammargeek

Hah yeah, tôi đoán tôi có thể làm điều đó. Tôi sẽ đợi cho đến khi tôi trở về nhà sau kỳ nghỉ để tôi có thể chuyển nó đến một nơi mà tôi có nhiều không gian hơn
cpd1

1
Tôi đã kết thúc việc sửa lỗi này. Tôi không nghĩ đã từng có một sự hoán đổi nếu tôi đi bằng Gparted. Tôi đã kết thúc việc tạo một và thay đổi mục trong fstab. Điều đó đã làm việc và không còn 90 giây khởi động
cpd1

1
nếu bạn đã giải quyết vấn đề của riêng mình, hãy tự trả lời và nhấp vào kiểm tra để đánh dấu là đã giải quyết :)
Grammargeek

1
Có nghĩa là ... Tôi đã thêm nó
cpd1

Câu trả lời:


115

Nếu bạn nhận được "một công việc bắt đầu được bắt đầu bởi dev-đĩa-by .." theo sau là độ trễ 90 giây trong mỗi lần khởi động, hãy hoàn thành các bước sau:

  1. Cài đặt gparted bằng Trung tâm phần mềm
  2. Mở gparted và xem phân vùng nào Ubuntu hiện đang sử dụng
  3. Chỉnh sửa tập tin fstab bằng cách sử dụng dòng dưới đây.

    sudo -H gedit /etc/fstab
    
  4. Tìm thiết bị mà bạn hiện không sử dụng

  5. Chèn một #và một khoảng trắng ở đầu dòng đó nhận xét nó.

  6. Đặt lại, hy vọng nó hoạt động cho bạn!


3
Hướng dẫn từng bước giúp mọi người! cảm ơn!
Hội trường John

Tôi đã gắn thẻ của bạn làm câu trả lời kể từ khi bạn đưa ra các bước
cpd1

9
+1 ... đối với những người không thể tìm thấy nó /etc/fstab, bạn cũng có thể kiểm tra xem /etc/crypttab- đó là trường hợp của tôi.
Grzegorz

7
Nếu đó là id khối đã thay đổi, thay vì nhận xét, tôi thích sửa id thiết bị hơn- Sử dụng lsblk -f để xem thiết bị nào được liên kết với id nào và thay thế id.
user1708042

3
Điều làm việc cho tôi là thay đổi bước 4 thành: "Sao chép UUID được tìm thấy trong gparted cho thiết bị gây chậm trễ khi khởi động" và bước 5 thành: "Thay thế nơi tìm thấy thiết bị trong tệp fstab". Đôi khi khi bạn thay đổi phân vùng di chuyển, UUID thay đổi và đó là nguyên nhân gây ra sự cố. Bạn chỉ cần sửa UUID mới cho phân vùng đã sửa đổi.
m4l490n

35

Có vẻ như vấn đề là do thực tế là mặc dù fstab có một mục để trao đổi, nhưng thực sự không có. Tôi đã sử dụng GParted để thay đổi kích thước phân vùng và tạo một Hoán đổi mới. Sau đó tôi đã sao chép UUID vào tệp fstab ...

  1. Bây giờ tôi đã trao đổi
  2. Và khởi động giảm xuống trong vòng vài giây so với hơn 90 giây

5
Tôi đã thay đổi kích thước phân vùng chính của mình (xóa / tạo lại trao đổi) và gặp vấn đề này. Tôi đã sử dụng 'sudo blkid' để liệt kê các thiết bị theo UUID và hơn là sử dụng UUID mới trong / etc / fstab.
Brad Goss

32

Tôi đã gặp vấn đề tương tự sau khi thay đổi kích thước phân vùng chính trên máy ảo của mình kể từ khi gparted live buộc tôi phải xóa và xác định lại hoán đổi của mình để thực hiện. Điều đó khiến cho một UUID mới được đặt không khớp với tệp fstab.

Để tránh vấn đề, trong /etc/fstabbạn có thể

  • Thay thế UUID trao đổi bằng cái mới (chạy sudo blkidđể tìm nó) sau khi thay đổi kích thước phân vùng chính.

  • Hoặc, nhận xét phân vùng trao đổi trước (hoặc sau) thay đổi kích thước phân vùng chính.

Tôi muốn giới thiệu cái trước vì nó là cách mà hệ điều hành có nghĩa là được thiết lập.


Cũng đã giúp tôi sau khi di chuyển phân vùng trao đổi của mình
po.pe

17

Trong trường hợp của tôi, trước đây tôi đã sử dụng trao đổi được mã hóa và công việc khởi động được đề cập /dev/mapper/cryptswap1. Để giải quyết vấn đề, tôi cũng phải xóa tệp /etc/crypttab, ngoài các bước được mô tả trong câu trả lời của William MacDonald.


6

Khi thay đổi kích thước hoặc xóa phân vùng với gparted, bạn thường phải tạo một phân vùng trao đổi mới.

Sau đó, cần phải kích hoạt trao đổi qua gparted sau khi tạo (có lệnh "Kích hoạt trao đổi").

Hơn nữa, bạn phải sao chép UUID mới vào / etc / fstab để gắn nó nếu không khi khởi động, hệ điều hành sẽ cố gắng tìm nó nhưng vô ích vì tệp fstab chứa UUID đề cập đến trao đổi cũ. Gparted cung cấp thông tin cho UUID nhưng bạn có thể dễ dàng chạy trong thiết bị đầu cuối:

sudo blkid

để tìm thấy nó.


4

Tôi đã có cùng một vấn đề khi khởi động.

Trong /etc/fstabtệp của tôi , các phân vùng của tôi được xác định là /dev/sda1, /dev/sda2v.v., nhưng khi khởi động, nhiều lần xuất hiện thông báo " Công việc bắt đầu đang chạy cho dev-sdx " ("x" xác định đơn vị hoặc phân vùng nào bị ảnh hưởng).

Để giải quyết nó, tôi đã thay đổi giá trị của /dev/sdxUUID của phân vùng. Để xem UUID, từ thiết bị đầu cuối chạy lsblk -f. Sau đó, sao chép UUID của phân vùng bị ảnh hưởng và ghi nó vào /etc/fstabtệp, thay thế /dev/sdaxnhư sau: /dev/sda1thay đổi thành UUID=xxxxxxxxxxxxxxxxxx.

Nó làm việc cho tôi, tôi hy vọng thông tin này hữu ích.


Đúng. Đây chính xác là vấn đề mà UUID giải quyết. Hệ thống gắn kết bất kỳ phân vùng nào với ID đó, bất kể thiết bị đó nằm ở đâu hoặc phân vùng nằm ở đâu. Với nhược điểm là bạn cần thay đổi UUID bất cứ khi nào bạn phá hủy / tạo phân vùng hoặc cài đặt ổ đĩa mới. Và sao chép một phân vùng (sao chép / dán gparted) sẽ tạo ra một bản sao có cùng UUID, điều này có thể gây ra vấn đề nếu bản gốc và bản sao cùng một lúc. Đối với hầu hết mọi người, điều này là ổn, nhưng bạn cần ghi nhớ khi nhân bản / thay thế ổ đĩa.
David C.

3

Khởi động của tôi bị chậm lại vì tôi đổi ổ đĩa và UUID không khớp. Điều này khiến Ubuntu thực hiện quét trong khi khởi động.

Tôi thường xuyên trao đổi ổ đĩa xung quanh. Nếu thú cưỡi của bạn luôn ở cùng một nơi (như của tôi), bạn có thể xóa UUID và đặt đường dẫn trực tiếp để ngăn lỗi quét đó xảy ra ...

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

Làm thế nào đề nghị này tăng tốc khởi động? Bất kỳ tài liệu tham khảo?
Mostafa Ahangarha

Tôi đã trả lời câu hỏi lỗi của anh ấy gây ra khởi động chậm. Tôi đã làm cho câu trả lời của tôi rõ ràng hơn.
Dan

1
Đúng, việc gắn theo tên thiết bị sẽ tránh được vấn đề, nhưng nó cũng tạo ra vấn đề mà UUID (và nhãn âm lượng) có nghĩa là phải giải quyết - việc gắn một ổ đĩa vào các vị trí khác nhau (ví dụ từ giao diện SATA này sang giao diện khác) sẽ thay đổi tên thiết bị, phá vỡ gắn kết của bạn. Bạn cần quyết định vấn đề nào dễ sống hơn, nhưng hãy chắc chắn rằng bạn nhớ quyết định của mình vì nó có thể rất bực bội khi xảy ra sự cố vì bạn quên.
David C.

3

Tình huống chính:

Đã được trả lời chi tiết ... (Bạn cần kiểm tra UUID trong các tệp đó)

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

Tình huống thay thế I - Udev:

Điều này có thể do udev gây ra nếu bạn có một tập lệnh quy tắc/etc/udev/rules.d/ không có nghĩa là chạy vào lúc khởi động, nếu tập lệnh thất bại, nó sẽ khiến bước fstab đó tiếp diễn mãi, chỉ cần chỉnh sửa tập lệnh của bạn để phù hợp với nhu cầu của bạn hoặc xóa nó.

Tình huống thay thế II - Dev được mã hóa:

Các phân vùng được mã hóa có thể gây nhầm lẫn vì phân vùng chính có UUID và phân vùng được giải mã có một UUID khác với phân vùng chính cho một phân vùng duy nhất chúng phải được xác định ở vị trí khác nhau 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 thực cần được chỉ định trong etc/crypttab

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

UUID ảo cần phải có tại /etc/fstab

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

Tình huống thay thế III - Ghost Dev:

Một thiết bị được thiết lập để được gắn vào lúc khởi động nhưng không có trong hệ thống hoặc tách ra như ổ USB.

Kiểm tra các thiết bị được kết nối thực với lsblk -o name,uuid,mountpointvà chỉnh sửa /etc/fstabđể chỉ giữ lại thiết bị được kết nối HOẶC để thiết bị chưa được kết nối ở đó nhưng thiết lập chúng bị bỏ qua khi khởi động với tùy chọn noautovà đặt dòng như thế này

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

Kiểm tra nhật ký hệ thống

journalctl -ab 

systemd-analyze blame

systemd-analyze critical-chain

systemctl status dev-mapper-crypt_sda2.device

systemctl status systemd-udev-settle.service

1
Cảm ơn, đó là một câu trả lời rất tốt và nên được chấp nhận. Hầu hết các câu trả lời khác ở đây đều sai một cách nguy hiểm và ngay cả khi chúng tránh được vấn đề, chúng đưa ra các vấn đề khác có thể ít rõ ràng hơn, ví dụ như loại bỏ mã hóa của thiết bị trao đổi.
Waqar Lim

2

Ngoài việc kiểm tra /etc/fstabhoặc /etc/crypttabnhư được đề cập trong các câu trả lời khác, cũng kiểm tra các UUID đến từ các tham số kernel trong /etc/default/grub. Trong một thời gian, tôi đã rất bối rối bởi một hệ thống có độ hoàn hảo hoàn toàn /etc/fstabchỉ để khám phá một resume=…tham số kernel trong cấu hình GRUB.


1
Điều này giúp tôi giải quyết vấn đề. My / etc / fstab vẫn ổn. Sau đó, ngoài ra /etc/default/grubtôi cũng phải thay đổi /boot/efi/EFI/fedora/grub.cfg. Tham số linux "CV = UUID = ..." đã trở nên lỗi thời sau khi tôi thay đổi thủ công phân vùng trao đổi.
Stphane

1

Bạn có thể bỏ qua việc chờ đợi và chuyển trực tiếp đến màn hình đăng nhập của mình bằng cách sử dụng ' Ctrl+ c' và sau đó làm việc với giải pháp. Đôi khi điều này sẽ tiếp tục mãi mãi nếu không.


Đó có phải là Ctrl, phím cộng và c không?
muru

Vâng, đúng vậy :)
Ramon Suarez

0

Tôi biết điều này đã cũ, nhưng tôi đã vấp phải vấn đề này, cùng một thông báo lỗi, trong khi nhân bản một cài đặt với rsync. không có lỗi trên fstab, vấn đề đã được giải quyết sau khi cập nhật initrdfs bằng tay. để thực hiện điều đó,

  1. khởi động máy vào một cài đặt hoạt động (máy multiboot, nếu không)

  2. gắn kết phân vùng gốc của hệ thống với vấn đề

  3. gắn kết dev, sys và Proc như cho một chroot làm việc

  4. chroot vào thư mục gốc của tập tin

  5. thực hiện mkinitrd

  6. thoát chroot và khởi động lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.