我在第一个 HDD (sda) 上安装了 Ubuntu 12.10(无更新,内核 3.5.0-17-generic),它使用 MBR 并在启用 LVM2 的情况下分区为“为 ubuntu 使用整个磁盘”。根文件系统在 LVM2 (VG:ubuntu) 上。今天我添加了相同大小的第二个硬盘(sdb),像第一个硬盘一样对其进行分区,创建 lvm2 PV 并将根 LV 转换为 raid1:
pvcreate /dev/sdb5
vgextend ubuntu /dev/sdb5
lvconvert --type raid1 -m1 /dev/ubuntu/root /dev/sdb5
Run Code Online (Sandbox Code Playgroud)
100% 重新同步后,我重新启动,initramfs 无法找到 root fs:
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
... (kernel messages)
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/ubuntu-root does not exist.
Dropping to a shell!
Run Code Online (Sandbox Code Playgroud)
有模块列表:
(initramfs) cat /proc/modules
hid_generic
usbhid
hid
e1000
raid10
raid456
async_pq
async_xor
xor
async_memcpy
async_raid6_recov
raid6_pq
async_tx
raid1
raid0
multipath
linear
(initramfs) cat /proc/cmdline
BOOT_IMAGE=/vmlinux-3.5.0-17-generic root=/dev/mapper/ubuntu-root ro
(initramfs) ls /dev/mapper
control ubuntu-swap_1
Run Code Online (Sandbox Code Playgroud)
lvm
实用程序有输出:
lvm> pvscan
PV /dev/sda5 VG ubuntu lvm2 [ 13.76 GiB / 408.00 MiB free]
PV /dev/sdb5 VG ubuntu lvm2 [ 13.76 GiB / 508.00 MiB free]
lvm> vgscan
Reading all physical volumes. This may take a while...
Found volume group "ubuntu" using metadata type lvm2
lvm> lvscan
inactive '/dev/ubuntu/root' [13.26 GiB] inherit
ACTIVE '/dev/ubuntu/swap_1' [100.00 MiB] inherit
lvm> lvdisplay ubuntu
--- Logical volume ---
LV Path /dev/ubuntu/root
LV Name root
VG Name ubuntu
LV UUID xxxxxxxxxxxxxxx
LV Write Access read/write
LV Creation host, time ubuntu, 2013-05-07
LV Status NOT available <<<<< !!!!
LV Size 13.26 GB
Current LE 3394
Mirrored volumes 2
Segments 1
Allocation inherit
Read ahead sectors auto
Run Code Online (Sandbox Code Playgroud)
并lvchange -ay ubuntu
失败:
lvm> lvchange -ay ubuntu
/sbin/modprobe failed: 1
Can't process LV root: raid1 target support missing from kernel?
Run Code Online (Sandbox Code Playgroud)
initrd 缺少什么?
小智 7
我在我的 Debian 系统上遇到了同样的问题;它原来是由一些必要的模块没有安装在 initramfs 中引起的。
具体来说,将这些行添加到 /etc/initramfs-tools/modules 后:
dm_mirror
dm_raid
dm_region_hash
Run Code Online (Sandbox Code Playgroud)
和跑步
update-initramfs -u -k all
Run Code Online (Sandbox Code Playgroud)
我的系统正确启动。
请注意,我没有检查所有这些行实际上都是必需的。我认为至少默认情况下缺少 dm_raid 模块。
进一步搜索后,在这个问题上有一个针对 initramfs-tools 的 Debian 错误:http ://bugs.debian.org/cgi-bin/bugreport.cgi?bug= 699804
归档时间: |
|
查看次数: |
2843 次 |
最近记录: |