Linux-Mint

systemd更新後安裝後無法啟動

  • July 23, 2016

首先,它多次重複此錯誤:

Lvmetad is not active yet, using direct activation during sysinit
Volume group "mint-vg"not found
Cannot process volume group mint-vg

比它顯示的:

Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/mint--vg-root does not exist.
Dropping to a shell!

然後它進入 BusyBox (iniframfs)

我也嘗試了一個較舊的核心,但它提供了同樣的東西。

我記得在這發生之前安裝了一個“systemd”更新。編輯:我在這台主電腦上使用 Linux mint 18 作為實時驅動器和主驅動器,順便說一下所描述的問題。有誰知道我應該從這裡做什麼?

Edit1:

我嘗試了這個解決方案:

缺少根 VG,被放入 initramfs shell。$$ SOLVED $$LVM LVS,現在我知道我的 vg 是“mint-vg”,我的根 LV 是“root”。我在掛載的 /boot/grub/grub.cfg 中更改了它並重新啟動了電腦。

但現在它多次重複這個錯誤:

Lvmetad is not active yet, using direct activation during sysinit
Volume group "mint" not found
Cannot process volume group mint

比它顯示的:

Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/mint-vg-root does not exist.
Dropping to a shell!

有誰知道如何更新 grub 和 initramfs?

Edit2:

我認為上面的新錯誤是由於“mint”和“vg”之間的附加破折號,所以我通過 KVPM GUI 應用程序將捲組名稱更改為“mint_vg”。不,我仍然得到與上面相同的錯誤,只是映射器名稱和卷組名稱已更改。

Edit3

我現在沒有做什麼,我在活動磁碟上安裝了引導修復,解密並安裝了我的主系統,然後執行引導修復。現在系統有一個我認為更新的 grub 和一個更新的核心……我嘗試了所有三個核心,包括新核心,它們都給出了與兩者相同的結果。

Edit4:

我的根目錄的 blkid 的 uuid 在 etc/fstab 和 etc/crypttab 中是不同的。我更改了實時磁碟中的這些文件,但在重新啟動時仍然出現相同的錯誤。

Edit5:

上面的一些命名是錯誤的,將它從 /dev/disk 更改為 /dev/mapper

Edit6:

我在 Peter 的回答方面進展順利(降級 systemd!我更改了我的實時驅動器的 /etc/host 中的一些內容以匹配我的主驅動器的 /etc/host)但我嘗試了 Peter 的最後三個命令行,它給了我這些問題:

root@mint / # grub-install /dev/sda
Installing for i386-pc platform.
grub-install: error: cannot find a device for /boot/grub (is /dev mounted?).
root@mint / # update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.4.0-31-generic
cat: /proc/cmdline: No such file or directory
root@mint / # update-grub
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).
root@mint / # 

我還嘗試放棄這些行並嘗試再次啟動我的主驅動器;沒用。

Edit7:

根據彼得的說法,我忘記了這條線

for d in dev proc sys; do mount -o bind /$d /mnt/root/$d; done

它給了我語法錯誤do。哦,好吧,據他說,我只需要把它們分解,我做了:

sudo mount -o bind /dev /mnt/root/dev
sudo mount -o bind /proc /mnt/root/proc
sudo mount -o bind /sys /mnt/root/sys

之後,我按照他回答中的其餘步驟,直到我在Edit6中遇到問題

grub-install /dev/sda似乎工作:

Installing for i386-pc platform.
Installation finished. No error reported.

update-initramfs -u另一方面,給了我一些可能是錯誤的消息,我將在編輯後檢查這些消息:

update-initramfs: Generating /boot/initrd.img-4.4.0-31-generic
cryptsetup: WARNING: invalid line in /etc/crypttab for luks-8cb0dfcf-f4c8-47a2-aede-7fae0217797e - 
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

我認為最大的問題在於update-grub

Generating grub configuration file ...
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
Found linux image: /boot/vmlinuz-4.4.0-31-generic
Found initrd image: /boot/initrd.img-4.4.0-31-generic
Found linux image: /boot/vmlinuz-4.4.0-28-generic
Found initrd image: /boot/initrd.img-4.4.0-28-generic
Found linux image: /boot/vmlinuz-4.4.0-21-generic
Found initrd image: /boot/initrd.img-4.4.0-21-generic
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
grub-probe: error: cannot find a GRUB drive for /dev/sdc1.  Check your device.map.
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
done  

如果有人知道上述問題的解決方案,請告訴我。

Edit8:

為了更好的衡量,這裡是/etc/fstab/etc/crypttab

Fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=9434a2fe-8f66-494d-a098-2aaa8b51a811 /     ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
#UUID=97fff05b-8e15-4a6b-ba91-08babab89e8e /boot           ext2    defaults        0       2
#/dev/mapper/mint--vg-swap_1 none            swap    sw              0       0
#UUID=02270177-d1a5-41bf-9b1c-f8f46fe22bb3  none swap sw 0 0
#Move /tmp to RAM
tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0
/dev/disk/by-uuid/89d3985d-93b9-4193-bc7e-ada76afba948 /mnt/89d3985d-93b9-4193-bc7e-ada76afba948 auto nosuid,nodev,nofail,x-gvfs-show 0 0
#UUID=97fff05b-8e15-4a6b-ba91-08babab89e8e  /boot   ext2    defaults    0   2
UUID=97fff05b-8e15-4a6b-ba91-08babab89e8e   /boot   ext2    defaults    0   2

密碼表:

sda5_crypt UUID=9434a2fe-8f66-494d-a098-2aaa8b51a811 none luks,discard
#cryptswap1 UUID=02270177-d1a5-41bf-9b1c-f8f46fe22bb3 /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
luks-f1e0883c-d8c1-4ec1-b5e7-8a9918ea0d5e UUID=f1e0883c-d8c1-4ec1-b5e7-8a9918ea0d5e /etc/luks-keys/luks-f1e0883c-d8c1-4ec1-b5e7-8a9918ea0d5e nofail  

**Edit9:**在上面的兩個文件中都更改了,現在執行後

9434a2fe-8f66-494d-a098-2aaa8b51a811只有錯誤 消息,現在將重點關注。無效消息(Edit7)消失了。8cb0dfcf-f4c8-47a2-aede-7fae0217797e``update-initramfs -u``W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

Edit10:

我放棄了,重新安裝所有東西比經歷這些廢話要容易得多。我永遠不會再安裝 4 級或 5 級更新。

因此,既然您變得絕望,這是一個臨時/骯髒的解決方案…

  • 啟動應急媒體
  • 將文件系統和 chroot 掛載到其中,例如。
mkdir /mnt/root
mount /dev/mapper/mint--vg-root /mnt/root
mount /dev/sda1 /mnt/root/boot # example if you have separate boot
for d in dev proc sys; do mount -o bind /$d /mnt/root/$d; done
chroot /mnt/root /bin/bash
  • 然後嘗試一些修復…我建議降級 systemd 版本或其他文件(請參閱 /var/log/apt/history.log 中的升級歷史記錄)(以下是 ubuntu 16.04 上的範例…我不有薄荷糖看看)
$ apt-cache policy systemd   
systemd:
Installed: 229-4ubuntu6
Candidate: 229-4ubuntu6
Version table:
*** 229-4ubuntu6 500
       500 http://de.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
       100 /var/lib/dpkg/status
   229-4ubuntu4 500
       500 http://de.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

$ apt-get install systemd=229-4ubuntu4
  • 然後如果您需要更新它,例如。因為您更改的某些軟體會以不同的方式生成它,請重新生成引導內容(如果尚未修復 fstab,請確保修復它……):
grub-install /dev/sda
update-initramfs -u
update-grub

最後一點,你的輸出說/dev/disk/vg-...,我不認為這是正確的。它應該說/deg/mapper/vg-...“映射器”,而不是“磁碟”。我會在 fstab 中解決這個問題,但我不確定在那裡放置了什麼樣的黑客……我假設你沒有手動執行它,所以我不確定這是否是一個問題。

引用自:https://unix.stackexchange.com/questions/297031