Ubuntu sẽ không khởi động vì lvmetad


27

Tôi đã làm theo hướng dẫn này để cài đặt Ubuntu 15.10:

https://thesimplecomputer.info/full-disk-encoding-with-ubfox

Sau khi khởi động lại máy tính, tôi vào menu grub và chọn Ubuntu. Ngay sau đó tôi đã gặp lỗi này:

/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

Những thông báo này cứ tiếp tục xuất hiện trên màn hình đen mỗi giây. Sau một thời gian, tôi có quyền truy cập vào initramfsbảng điều khiển tro.

tôi đang làm gì sai


bàn điều khiển tro hay bàn điều khiển bash? lỗi đánh máy?
Thufir

Câu trả lời:


12

Tôi đã thấy một lỗi tương tự ngày hôm nay trên một máy tính xách tay chạy Ubuntu 15.10 mà tôi luôn cập nhật nhưng đã không khởi động lại trong một tháng cho đến khi tôi muốn kiểm tra hạt nhân hiện tại (có thể có một sự thay đổi gần đây).

Dù sao, tôi thấy rằng trong trường hợp của tôi, nguyên nhân cơ bản thực sự là một phân vùng trao đổi "bị thiếu" do trục trặc thiết lập khi làm theo hướng dẫn ở trên. Nếu đây là trường hợp và / hoặc bạn đang thực sự sử dụng lvm, bạn có thể bỏ qua bước 2 bên dưới. Tất nhiên, bạn cũng có thể thấy thông báo lỗi ở trên trong trường hợp phân vùng hệ thống (hoặc dữ liệu thứ cấp) của bạn bị hỏng hoặc không thể tìm thấy (xem bước 3).

Bước 1: Gắn hệ thống của bạn, khởi động các phân vùng theo hướng dẫn đã nói ở trên

Hãy nói rằng (ext2) phân vùng khởi động của bạn là / dev / sdX1, (mã hóa) phân vùng swap của bạn là / dev / sdX2, (mã hóa) phân vùng dữ liệu của bạn là / dev / sdX3 và bạn đã giải mã thành công sau này sử dụng cryptsetup luksOpen /dev/sdX3 data, tiếp theo là gắn nó : mkdir /tmp/data; mount /dev/mapper/data /tmp/data.

Hãy chú ý đến các liên kết gắn kết trong hướng dẫn và đảm bảo gắn kết / dev / sdX1 để bạn có thể truy cập nó từ thư mục khởi động / phân vùng hệ thống của bạn (điều này rất quan trọng khi chúng ta phải thực thi update-initramfs).

Sau đây, chúng tôi cho rằng bạn đã thực hiện thành công chroot /tmp/data/@ubuntu1510(hoặc bất kỳ phân vùng hệ thống được gắn kết nào của bạn được gọi)

Bước 2: Loại bỏ thông báo lỗi trên

Tôi đang sử dụng btrfs (như bạn có thể đoán từ tên subvolume đã đề cập), vì vậy lvmetad có thể dễ dàng bị vô hiệu hóa như sau mà không mất chức năng:

  • chỉnh sửa /etc/lvm/lvm.conf và thay đổi use_lvmetad=1thànhuse_lvmetad=0
  • thi hành update-initramfs -k $(uname -r) -u ; sync

Bây giờ, bạn có thể khởi động lại và thông báo lỗi sẽ biến mất. Tuy nhiên, trong trường hợp của tôi, thông báo lỗi tiếp theo [1] đã chỉ cho tôi vấn đề tiềm ẩn được đề cập ở trên, vì vậy trong khi chúng ta đang ở đó, ...

Bước 3: Đảm bảo rằng / etc / crypttab trỏ đến các phân vùng chính xác, không bị hư hại

Trước tiên, hãy chạy sfdisk --list /dev/sdXvà kiểm tra xem phân vùng trao đổi được mã hóa của bạn (trong trường hợp của tôi, / dev / sdX2) thực sự không hiển thị dưới dạng phân vùng trao đổi (bình thường). Nếu đúng như vậy (như trong trường hợp của tôi), điều này có nghĩa là việc khởi động, ví dụ, sử dụng đĩa cứu hộ có thể sẽ sử dụng phân vùng trao đổi có sẵn đó, do đó ghi đè lên siêu dữ liệu liên quan đến cryptsetup của bạn (cụm từ khóa và UUID).

Tiếp theo, hãy xem / dev / đĩa / by-uuid và so sánh các UUID tương ứng của các phân vùng được mã hóa của bạn với các phân vùng có trong / etc / crypttab. Tôi đoán tại thời điểm này: Trong trường hợp của bạn, có một sự không phù hợp.

Nếu không tìm thấy phân vùng trao đổi được mã hóa chuyên dụng bên dưới / dev / đĩa / by-uuid, thì đó là bởi vì hệ thống cứu hộ của bạn hiện đang được sử dụng. Trong trường hợp đó, hãy làm như sau:

  • đảm bảo ngừng sử dụng phân vùng: swapoff -a
  • định dạng lại nó: mkfs.ext2 /dev/sdX2(điều này rất quan trọng , đặc biệt là khi sử dụng phân vùng GPT [2], vì nó hoàn tác trục trặc tôi đã đề cập trước đó. Nguyên nhân có thể của phân vùng hiển thị là loại "hoán đổi" trong danh sách sfdisk là do bạn / tôi đã sử dụng nhầm mkswap /dev/sdX2khi thiết lập phân vùng lúc đầu.)
  • làm theo hướng dẫn để mã hóa phân vùng và đặt cụm mật khẩu; sau đó, mở nó bằng cryptsetup và định dạng lại đúng phân vùng đã được giải mã (sử dụng cái gì đó như mkswap /dev/mapper/swap)
  • đảm bảo rằng sfdisk --list /dev/sdXsẽ không xác định phân vùng trao đổi như vậy (trong trường hợp đó, lặp lại các bước cuối cùng)

Bây giờ, hãy kiểm tra lại rằng các UUID được liệt kê trong / etc / crypttab là phù hợp với những gì bạn thấy bên dưới / dev / đĩa / by-uuid cho các phân vùng được mã hóa tương ứng của bạn.

Một lần nữa, để thực hiện các thay đổi vĩnh viễn, bạn phải thực hiện update-initramfsnhư được hiển thị ở trên.

Nếu bạn hài lòng, hãy đảm bảo mọi thứ được ghi vào đĩa và khởi động lại hệ thống (không cần ngắt kết nối mọi thứ theo cách thủ công). Sau đó, vấn đề của bạn sẽ biến mất.

[1] có thể tôi đã không chú ý lần đầu tiên hoặc thông báo lỗi đầu tiên "che dấu" lần thứ hai; tức là, chỉ sau khi khởi động lại (với use_lvmetad=0), tôi mới được trình bày " Đọc tất cả các khối vật lý. Việc này có thể mất một lúc ... " (lặp đi lặp lại nhiều lần), tiếp theo là " ALERT! / dev / đĩa / by-uuid / .. không tồn tại. ". (Cần lưu ý rằng update-initramfscũng phàn nàn về một phân vùng bị thiếu.)

[2] vì loại của chúng bị trừ khi phân tích nội dung của chúng và cuối cùng không được chỉ định bởi cờ / byte (đó là lý do tại sao không có cách dễ dàng nào, ví dụ: thay đổi loại hệ thống tệp GPT bằng cách sử dụng [g]parted.)


2

Ubuntu 18.04.1 LTS tại đây. Nó đã chạy được vài tháng mà không được giám sát, nhưng khi tôi trở về, tôi thấy bàn phím không được nhận dạng. Khi tôi khởi động lại, tôi nhận được thông báo 'không thể kết nối với lvmetad' và biết thêm về việc không thể nhận được "danh sách db UEFI".

Tôi đã cài đặt mà không cần mã hóa đĩa.

Thông điệp UEFI thật đáng lo ngại vì đây là lần cài đặt đầu tiên của tôi trên máy tính UEFI, vì vậy tôi không có kinh nghiệm và thật lòng vẫn chưa hiểu rõ về tính hữu dụng. Vấn đề của tôi được giải quyết bằng thực tế là tôi đã sử dụng 'lvm' cho những gì sẽ là '/', gốc, âm lượng của tôi. (Trên thực tế, tôi đã quên mất cách tôi đã hoàn thành RATNG ngay từ đầu! Này. Tôi già rồi.)

Tuy nhiên, khi máy không khởi động lại, tôi đã tìm kiếm một giải pháp và không tìm thấy gì rõ ràng, nhưng đã nhận thấy rằng a) phân vùng EFI của tôi nhỏ hơn 500 MB được đề xuất trên một trang web và b) phân vùng / boot / phân tách tôi đã sắp xếp cho có lẽ không liên quan và không được sử dụng. Tôi nghĩ rằng có thể một bản nâng cấp không giám sát, có lẽ, đã gây ra thứ gì đó, có thể, để lấp đầy không gian được phân bổ của nó.

Tôi quyết định cài đặt lại - hoạt động và khiến cấu trúc thư mục / home / của tôi không bị biến đổi. Tôi chưa kiểm tra / etc /, nhưng đã tạo bản sao của cả hai trước đó [1], vì vậy tôi có thể kiểm tra sau. / etc / là thực sự nhỏ.

Tôi cũng đã xóa và kết hợp các phân vùng cho EFI và / boot / thành một phân vùng EFI duy nhất, lớn hơn (> 750MB).

Nó khởi động lại ngay bây giờ, nhưng một thông báo lỗi sẽ nhấp quá nhanh để đọc và tôi không được cung cấp 'menu' hình ảnh Linux để khởi động, thay vào đó, nó khởi động trực tiếp vào Ubuntu. Vẫn còn nhiều việc phải làm, với grub tôi cho rằng, để giải quyết vấn đề này. Nhưng ít nhất các tập tin của tôi đã trở lại.

[1] Tôi đã khởi động cài đặt Ubuntu từ thẻ nhớ USB và chọn "thử" Ubuntu, cho phép tôi tạo các bản sao của vv và nhà, trước khi chọn "Cài đặt" từ máy tính để bàn.


với mount /dev/mapper/data /tmp/datatôi nhận được unknown filesystem type LVM2_member.
Francesco Boi

2

Các Failed to connect to lvmetadlỗi có thể xảy ra vì đĩa là 100% đầy đủ. Để khắc phục điều này, hãy khởi động từ ổ USB, gắn toàn bộ đĩa, xóa một số tệp không cần thiết và khởi động lại. Tôi cũng đã cài đặt lại hệ thống khởi động - Tôi không biết điều đó có cần thiết hay không.

Đây là những lệnh giải quyết vấn đề cho tôi, chạy từ thiết bị đầu cuối sau khi khởi động từ ổ USB. Tôi có chứng khoán Ubuntu 18.04 với mã hóa toàn bộ ổ đĩa. YMMV.

  • gắn ổ đĩa:
sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
sudo vgscan --mknodes
sudo vgchange -ay
sudo mount /dev/mapper/ubuntu--vg-root /mnt
  • xóa các tệp không cần thiết ( cd /mnt/home/your_username... rm ...)
  • (có thể không cần thiết) cài đặt lại hệ thống khởi động:
cd /mnt/
sudo mount /dev/sda1 boot
for d in dev sys proc run; do sudo mount --bind /$d $d; done
sudo vi etc/crypttab # make sure first line uses "sda5_crypt"
sudo chroot .
update-grub
grub-install /dev/sda
update-initramfs -u -k all
exit
sudo umount dev sys proc run boot
  • không đếm được:
cd /
sudo umount /mnt
sudo vgchange -an
sudo cryptsetup close sda5_crypt
  • khởi động lại:
sudo reboot

0

Không cần thiết phải khởi động hệ thống của bạn từ USB hoặc thứ gì khác. Tôi đã có cùng một vấn đề và một lý do - bởi vì đĩa đã đầy 100%. Giải pháp tiếp theo đã giúp tôi.

1) Khởi động lại hệ thống của bạn. Với BIOS, nhanh chóng nhấn và giữ phím Shift, thao tác này sẽ hiển thị menu GNU GRUB.

2) Sau khi nhấn 'e' để chỉnh sửa cài đặt Ubuntu. Trong vấn đề này, bạn có thể tìm thấy màn hình. Tìm một chuỗi bắt đầu như 'linux *', như thế này:

linux     /boot/vmlinuz-4-4.0-22-generic root=UUID=43ad24d3-e\
c5b-44ee-a099-a88eb9520989 ro  quiet splash $vt_handoff

Xóa bỏ:

ro  quiet splash $vt_handoff

và thêm:

init=/bin/bash

Khi đã sẵn sàng nhấn CTRL + x hoặc F10 để khởi động.

3) Phân vùng gốc được gắn chỉ đọc. Để gắn kết nó đọc / ghi, nhập lệnh

mount -o remount,rw /

4) Tìm hiểu những gì đã sai:

df -hT
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.