我刚刚安装了最新的 Ubuntu 12.04,显然它搞砸了一些事情。我不确定这是否与我有 Raid 1 有关,但目前,我有 sda 和 sdb 指向同一设备:
# blkid
/dev/sda1: UUID="88aa922a-4304-406e-8abd-edc2e9064d79" TYPE="ext2"
/dev/sda2: UUID="22b881d5-6f5c-484d-94e8-e231896fa91b" TYPE="swap"
/dev/sda3: UUID="e1fa161b-b014-4a6b-831a-9d8f9e04be07" TYPE="ext3"
/dev/sda5: UUID="6ed19886-1cba-47b2-9ce0-7c2ea8f9c3c9" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb1: UUID="88aa922a-4304-406e-8abd-edc2e9064d79" TYPE="ext2"
/dev/sdb2: UUID="22b881d5-6f5c-484d-94e8-e231896fa91b" TYPE="swap"
/dev/sdb3: UUID="e1fa161b-b014-4a6b-831a-9d8f9e04be07" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb5: UUID="6ed19886-1cba-47b2-9ce0-7c2ea8f9c3c9" TYPE="ext3"
但我只有一个“可见”硬盘,所以这应该是 sda。在我的早期版本(10.10)中,/dev/mapper 解决了这个问题。查看下面的挂载点。在当前版本中,这个不再起作用了,所以我一开始在fstab中输入了sda挂载点,这似乎可以工作,但是当我执行mount命令时,我看到突然有一个分区被挂载为sdb而不是sda。所以我尝试在fstab中使用UUID作为文件系统,但问题仍然存在。更糟糕的是:它混淆了两种设备。这意味着它有时会将一个分区挂载为 sda,而在下次重新启动时,它会突然挂载为 sdb。它的行为就像它会挂载不同的硬盘驱动器,因为我的 /home 分区曾经作为 sda 挂载,现在作为 sdb 挂载,并且我在文件系统中所做的更改和设置突然“重置”。我能做些什么?我应该删除所有 sdb 块特价吗?
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
#/dev/mapper/pdc_ccfhbjbeeg3 / ext3 errors=remount-ro 0 1
#/dev/mapper/pdc_ccfhbjbeeg1 /boot ext2 defaults 0 2
#/dev/mapper/pdc_ccfhbjbeeg5 /home ext3 defaults 0 2
#/dev/mapper/pdc_ccfhbjbeeg2 none swap sw 0 0
#/dev/sda1 /boot ext2 defaults 0 2
#/dev/sda2 none swap sw 0 0
#/dev/sda3 / ext3 errors=remount-ro 0 1
#/dev/sda5 /home ext3 defaults 0 2
UUID=e1fa161b-b014-4a6b-831a-9d8f9e04be07 / ext3 errors=remount-ro 0 1
UUID=88aa922a-4304-406e-8abd-edc2e9064d79 /boot ext2 defaults 0 2
UUID=6ed19886-1cba-47b2-9ce0-7c2ea8f9c3c9 /home ext3 defaults 0 2
UUID=22b881d5-6f5c-484d-94e8-e231896fa91b none swap sw 0 0
顺便说一句更新
,Ubuntu 安装程序显示 RAID 阵列而不是分区。也可以看看https://bugs.launchpad.net/ubuntu/+bug/973147
答案1
看看如果你激活了一个raid,你是否可以隐藏你的真实磁盘。这可能是您 PC 的主系统或 RAID-BIOS 中的设置。
我在 CentOS 5.5 上也遇到了类似的问题,升级到 5.6 后就消失了。
在浏览了一些关于这些伪袭击设备的网页后,我按照那里给出的建议并将其停用。之后我用纯 Linux 方式重建为纯软件 raid ( man mdadm
)。
在此过程中,我没有丢失任何数据并获得了大量空间 - 我将一些分区放入 RAID0 配置中,以存储需要快速且可以轻松恢复的数据。
答案2
我怀疑你有一个“假RAID”控制器。这些 RAID 控制器仅在 BIOS 中提供最低限度的支持;大部分工作是在 Windows 驱动程序中完成的。 Linux 通常无法很好地处理这些控制器,因为它缺少 Windows 驱动程序。看到单个 UUID 但有两个磁盘是假 RAID 的常见症状(Windows 驱动程序会知道有两个磁盘,但它们应该具有相同的内容)。
如果您有假 RAID 设备(您可能有:消费级 RAID 控制器几乎总是假 RAID),并且您不与 Windows 共享磁盘,请在 BIOS 中关闭 RAID。然后启用 Linux 的软件 RAID,它对于 RAID-1 在各方面都更胜一筹(除非您与 Windows 共享磁盘)。
答案3
我找到了一个非常简单的解决方案来让我的(显然是假的)硬件 RAID 再次工作。
重新安装 Ubuntu 12.04 后,我没有重新启动,而是保持在尝试模式。然后我安装 / 并编辑
/usr/share/initramfs-tools/scripts/local-top/dmraid
我在最后一条评论后添加了 dmraid -ay :
# Activate any dmraid arrays that were not identified by udev and vol_id.
dmraid -ay
if devices=$(dmraid -r -c); then
for dev in $devices; do
dmraid-activate $dev
done
fi
我想就是这样,但一开始我添加了
dm-raid45
dm-mirror
dm-region-hash
到
/etc/modules
我不确定这是否重要,因为第一次启动后(最终在没有回退到维护控制台的情况下工作), /etc/modules 不再包含这 3 个模块,所以我想你可以忽略它。
当我执行 mount 时,我看到 /dev/mapper 再次挂载:
/dev/mapper/pdc_ccfhbjbeeg3 on / type ext3 (rw,errors=remount-ro)
/dev/mapper/pdc_ccfhbjbeeg1 on /boot type ext2 (rw)
/dev/mapper/pdc_ccfhbjbeeg5 on /home type ext3 (rw)
答案4
由于您不是使用 Windows 双启动,因此您应该停止使用 fakeraid 并使用普通的 mdadm 软件 raid 重建系统。由于您安装了各个磁盘,因此损坏了 raid 阵列,导致两个副本彼此不同步。即使您现在正确安装阵列,读取有时也可能会从其他磁盘返回不同步的数据,这可能会导致大量文件系统损坏。
请注意,您必须实际删除 raid 阵列才能摆脱它,而不仅仅是将控制器模式切换回非 raid,否则 Ubuntu 仍然会识别并尝试使用它。
另请记住,raid 不能替代备份。旨在提高速度和/或减少硬件故障时的停机时间;它不能防止数据丢失。