首先,我将从解释我是如何得到我的问题,这将帮助我了解我需要的东西。
几个月前,我的笔记本硬盘坏了。我没有快速更换,但第二天我需要那台笔记本电脑,所以我能做的就是把2.5“的硬盘从我的路由器上拔出来。路由器实际上是一台运行OpenBSD 4.9的ATX。现在,由于我需要非常快的驱动器,我在台式机上创建了一个带有dd的映像,将驱动器放入笔记本并安装了Fedora。
好的,现在我有了我的笔记本电脑的替代硬盘,在我开始安装回到路由器的硬盘驱动器之前,我在问自己,我如何安装我在启动时所做的映像……
关键是,我可以重新安装最新的OpenBSD,然后只使用映像中的配置文件。我现在所知道的唯一能做的就是用dd将映像写回磁盘。这应该是可行的,但我也想利用这个机会来升级系统。
我试着在制作映像之前挂载OpenBSD分区,但是它没有工作,而且我没有多少时间(一天晚上只花了几个小时)。我是否应该将映像写回磁盘,然后尝试挂载它,恢复所需的文件,然后安装最新的OpenBSD?
发布于 2013-06-19 05:57:11
不能仅仅挂载分区的原因是因为您有一个磁盘映像,而不是单个分区的映像。您将需要不同分区的偏移量,并在挂载时使用其循环和偏移选项。
在你的例子中,我会回放图像,然后升级,但你没有说明你是如何连接2.5“到你的桌面电脑,或者你现在打算怎么做。如果你要使用USB,那么在播放之前升级可能会更快(但更多的工作),假设图像位于内部SATA驱动器上。由于USB2.0和SATA速度的差异,升级将花费更长的时间。图像的播放(升级与否)将需要同样的时间。
如果要在播放前进行升级,请使用“分割”查找图像的开始。parted hd.img将给出分区号的列表,开始和结束。使用启动信息(例如12345 ),您可以在磁盘映像中挂载分区:
mount -o loop,ro,offset=12345 hd.img /mnt/tmp如果桌面不识别分区类型,也可能需要指定分区类型。然后,您可以使用该信息更新您的新安装,重新装入分区rw,清除分区,并将内容写回。唯一我不确定的是,这是否会同意ATX板的引导加载程序,但是升级到磁盘的系统也会有同样的问题。
发布于 2014-03-18 00:34:15
这对我起了作用:
losetup -r -P /dev/loop1 openbsd.dsk然而,losetup(8)来自:
# losetup --version
losetup from util-linux 2.22.2并拥有-P选项:
-P, --partscan
force kernel to scan partition table on newly created loop device我可以在dmesg(1)和/proc中看到分区:
# dmesg
...
[43126.359869] loop1: p4
p4: <openbsd: p5 p6 p7 p8 p9 p10 p11 >
# grep -e loop1 /proc/partitions
7 1 419430400 loop1
259 0 419424988 loop1p4
259 1 208845 loop1p5
259 2 265041 loop1p6
259 3 160650 loop1p7
259 4 1052240 loop1p8
259 5 4192960 loop1p9
259 6 522112 loop1p10
259 7 413023104 loop1p11旧版本的losetup(8)不支持-P选项。
https://unix.stackexchange.com/questions/79931
复制相似问题