预利姆

预利姆

我有一个基于 800MHz Intel Atom 的自制媒体服务器,带有两个大 LVM 驱动器,还有一个 250GB 2.5" 驱动器上的 Debian 9。后者显示坏块,所以我打算更换它。

我从 Debian live CD 启动,并将整个 250GB 磁盘表面添加到新的 WD Blue 1TB 驱动器上,并将dd if=/dev/sda of=/dev/sdd新磁盘连接到 USB-SATA 接口。然后我将驱动器安装到媒体服务器中,替换了 250GB 的驱动器。机器在启动时挂起,就在打印驱动器 ID 之后、启动加载程序启动之前。引导加载程序是 grub 遗留的。我从 live CD 启动并 chroot 到克隆中,看起来工作正常。所以我安装了LVM卷,并将grub2安装到了新的/dev/sda,据称已经成功。但从新的硬盘启动仍然会像以前一样锁定机器。我还运行过update-initramfs -u -k allgrub-installupdate-grub以及whathaveyou,正如人们所期望的那样。

然后我尝试了这张启动修复光盘这也声称成功,但对结果没有影响。机器在通电后过早挂起。

有人警告我在驱动器前面附近没有一个小的 /boot 分区,所以我现在创建了一个。没有不同。我还尝试在第一个分区之前留下 6MB 间隙,对齐 4K 扇区等等,每次都重复整个 grub 安装和引导修复磁盘尝试。每次:无法启动,在进入 BIOS 屏幕之前崩溃,但是从 CD 启动并且可以 chroot 进入它,因此数据看起来完好无损。

改装旧驱动器效果很好(目前)。

这是一台非常简单的机器,MBR msdos 式引导,没有 EFI,只安装了一个操作系统。

机器无法从旧的 250GB 驱动器克隆到 1TB 驱动器上启动是否有充分的理由?它是怎么知道的?驱动器 ID 没有出现在/boot/grub我能找到的任何地方。都是UUID。

旧驱动器有 512B 物理扇区,新驱动器有 4096B 物理扇区,但它有 512B 模拟,对吧?

以下是针对新驱动器运行的引导修复 CD 的一些输出。

Drive: sda _____________________________________________________________________
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1    *      1,036,288   477,345,791   476,309,504  83 Linux
/dev/sda2         477,347,840 1,953,525,167 1,476,177,328   5 Extended
/dev/sda5         477,349,888   489,932,799    12,582,912  83 Linux
/dev/sda3              12,288     1,036,287     1,024,000  83 Linux


Drive: sdb _____________________________________________________________________
Disk /dev/sdb: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdb1                   1 4,294,967,295 4,294,967,295  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sdb1                    3415,628,048,06415,628,048,031 Logical Volume Manager (LVM) partition (Linux)

Attributes: R=Required, N=No Block IO, B=Legacy BIOS Bootable, +=More bits set

Drive: sdc _____________________________________________________________________
Disk /dev/sdc: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdc1                   1 4,294,967,295 4,294,967,295  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sdc1                 2,048 5,860,532,223 5,860,530,176 Logical Volume Manager (LVM) partition (Linux)

Attributes: R=Required, N=No Block IO, B=Legacy BIOS Bootable, +=More bits set

"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/loop0                                              squashfs   
/dev/mapper/exported-archive 4b899a61-2f1c-4cd8-bc32-ce435912ba87   ext3       
/dev/mapper/exported-media 36a5370f-d49a-4da3-9bc8-fefa0d005f4f   ext3       
/dev/mapper/exported-photos af677e44-2a83-4aba-8b37-c38c3b07a10b   ext3       
/dev/mapper/exported-web 27040136-28bf-464d-9802-c20511ad661f   ext3       
/dev/sda1        7788ea31-5e63-4869-a80e-40c99c6128b3   ext3       
/dev/sda3        6f547317-4688-435f-a69d-787bf7262f29   ext3       boot
/dev/sda5        a311a5cb-4f03-4930-a028-bf87b4dd8e55   swap       swap
/dev/sdb1        yGbmYE-Lvk1-8lZj-0xQz-u57b-L1sV-0RjV66 LVM2_member 
/dev/sdc1        ShaGRu-GqRZ-4fS3-k0zp-g5x4-5Kae-uLoC9o LVM2_member 
/dev/sr0         2017-10-29-01-25-15-00                 iso9660    Boot-Repair-Disk 32bit
/dev/zram0       a9802c34-25bd-4f6f-b3e5-d75c62fe8adc   swap       
/dev/zram1       5ea34823-7d6a-4ac5-bb49-7fa9c8bbecea   swap       
/dev/zram2       dcc2c96c-1f33-4604-b5ac-d62964731bd4   swap       
/dev/zram3       0eb6d924-359e-4fed-b904-788ce185bb0a   swap       

答案1

预利姆

我假设你已经备份了——冗余度与数据的价值成正比!
dd​以及 tarball

所以……你做了一个完整的设备dd呃……呃。
坏块源磁盘的两倍。对于完全不同的源和目标磁盘架构

以下是一些细微的改进(仅出于完整性目的),我并不真正期望真正的好处。我推荐的是下面这些

分区dds

手动对新磁盘进行分区;dd每个分区单独

分区副本

手动对新磁盘进行分区; MKFS;高级复制文件系统。 cp -a给我带来了tar c... source|tar x... target麻烦

但我假设您已经尝试过上述方法,但没有成功。所以…

新的磁盘可以用吗?

尝试在新磁盘上安装全新的 debian。有效吗?

如果没有,我们当然正在处理一个完全不同的问题

假设是,那么

并排

[为简单起见,我假设你避开 LV 的东西]

  • 安装新操作系统时(上图)手动分区并选择根系统 — 一个用于当前(新)安装,另一个用于旧的(副本)。让我们将它们标记为 DebCurrent DebOld
  • 继续在 DebCurrent 中进行新安装
  • 将旧磁盘根目录复制到 Debold
  • 重新点/etc/fstabDebold
  • [假设 DebCurrent 启动]
  • 开机时
    • 输入grub提示符
    • 打开 DebCurrent 的工作节
    • 手动编辑指向 DebOld;尝试开机

但是……(我猜)问题仍然存在。它是一个

硬件不匹配问题

也许问题在于

  • 主板旧(MBR-BIOS)
  • 磁盘是新的 — 更喜欢 gpt

爱奥瓦默认值是:

old: BIOS-MB + MBR-disk
new: EFI-MB + gpt-disk

不可能混合匹配,即在 Windows 世界中,如果不花更多钱购买新的 EFI MB,这是无法解决的。

然而在linux世界中你可以使用带有 BIOS-MB 的 GPT 磁盘 关键是您需要创建一个 BBP——靠近磁盘开头的一个微小的 1MB 特殊 BIOS 启动分区。

你可以这样做分手了虽然我建议所有 gpt 事情都要完成g磁盘

稍后添加

制作 bbp

我强烈建议对于 gpt 磁盘,实际分区使用 gdisk 完成。这可以很好地保持对齐。此后,使用 (g)parted 将类型标记为 BBP 可能会更容易。请注意上面的 parted 和 gdisk 链接

相关内容