在救援模式下恢复磁盘映像

在救援模式下恢复磁盘映像

我使用 dd 命令从我的 Linux 磁盘进行了备份,并将其上传到网站。

现在我的 VPS 出现内核恐慌,我打开了救援模式,想要下载并恢复该备份映像。

我的问题:由于我的内核无法启动,并且我无法挂载我想要恢复的磁盘,我可以在哪里下载磁盘映像来恢复它?(磁盘映像大约 5 GB)

问候,

答案1

如果您需要将磁盘的每个扇区(包括空扇区和“已擦除”扇区等)放在同一位置,则原始dd磁盘映像是个不错的选择,但它会占用大量空间。您可以使用 gz、xz 等压缩映像,但这样就无法轻松安装或浏览它。

Linux 通常不关心它的文件位于哪个扇区,因此仅文件备份也可以工作(之后只需恢复引导加载程序)并且可能占用更少的空间,只需 .tar.gz/.tar.xz 或 squashfs 就可以了,也可以挂载。

但目前你只能使用 5GB 的磁盘映像,最简单的方法就是按照上传的方式下载它 - 我假设你首先使用其他驱动器上的临时存储来保存映像。但现在启动是个问题,所以只需:

  1. 启动实时 Linux 磁盘
  2. 将 5GB 图像下载到创建时使用的相同其他临时存储(另一个驱动器、USB 驱动器,甚至另一台联网计算机等)。
  3. 再次使用dd即可恢复驱动器映像。

由于它位于 Google Drive 上,因此其中一个答案可能让您直接将下载流式传输/管道传输到dd,但看起来技术会随着时间而改变,并且可能不再起作用。这个答案说它应该最近起作用,它是:

2018 年 6 月 对我来说最有效的方法

  1. pip 安装 gdown
  2. 下降https://drive.google.com/uc?id=file_id

file_id 应该类似于 0Bz8a_Dbh9QhbNU3SGlFaDg

您可以通过右键单击文件然后获取可共享链接来获取它。已在开放访问文件上测试。我不确定它是否适用于目录。

或者这个稍微不那么近,答案的核心似乎是使用curlcookie(有关详细信息,请参阅完整答案):

#!/bin/bash
fileid="FILEIDENTIFIER"
filename="FILENAME"
curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/null
curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename}

相关内容