我在 Acer C720P Chromebook 上安装了 Bodi。在开始升级之前,我创建了一个备份
dd if=/dev/sda1 of=/path/to/image
当然,升级出错了。我可以再次设置 chromebook,现在我尝试访问我的备份。但我无法安装映像,fdisk 告诉我没有分区
fdisk -l chromi.img
Disk chromi.img: 23.6 GB, 23623172096 bytes
255 heads, 63 sectors/track, 2872 cylinders, total 46139008 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk chromi.img doesn't contain a valid partition table
有谁能帮助我吗?
答案1
让我们先来看看哪里出了问题:
您没有备份磁盘(即 /dev/sda)。
您仅备份了一个分区。
在 ASCII 图形中:
-------------------- whole disk sda --------------------------
[MBR] [partition sda1] [possible second partition sda2] ...
您的 dd 命令告诉计算机仅备份分区 /dev/sda1。
但现在您告诉 fdisk 查找 MBR,而 MBR 不在 /dev/sda1 中,因此未备份。
简而言之,fdisk 是正确的‘chromi.img 不包含有效的分区表’。
现在尝试修复此问题:
你的目标是什么:
- 将旧映像复制回现有分区吗?
- 还是从备份中读取旧数据?
要复制回来,您可以从某个地方启动,访问您的映像(无论它在哪里。我假设您将它存储在外部硬盘或 SD 卡上的某个地方)并反转 dd 命令以恢复到备份之前的情况。
dd of=/dev/sda1 if=/path/to/image
要安装文件系统(而不是整个磁盘)在图像中,您将:
- 创建环回设备(例如
losetup -d /dev/loop0
) - 并告诉它使用图像(
losetup /dev/loop0 /path/to/image
) - 然后,您可以像安装常规设备一样安装环回设备。(例如 mount /dev/loop0 /mnt`)
供将来参考(以及其他遇到类似问题的读者):
您可能想要备份整个磁盘,包括引导记录、所有分区和空白空间。为此,您可以使用 /dev/sda(不带分区号)。您可能希望通过 gzip 或 netcat 将其堆叠起来。
可以通过使用偏移量来访问整个磁盘备份中的文件系统(例如 losetup /dev/loop0 disk.img -o NUMBER_HERE)