首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >克隆Debian安装

克隆Debian安装
EN

Unix & Linux用户
提问于 2018-12-12 18:46:34
回答 1查看 161关注 0票数 2

我想克隆一个现有的Debian安装,并在一个不同大小的硬盘的新机器上恢复。

分区非常简单- /dev/sda3 1用于EFI,/dev/sda3 2用于Linux,/dev/sda3 3用于交换。

在我创建图像的机器上,我主要是这样做的:

代码语言:javascript
复制
fsarchiver savefs /images/${BACKUP_FILE_NAME}.fsa /dev/sda1 /dev/sda2 -e *.fsa -v -j4 -A -z 9

我还保存了以下内容的输出:

代码语言:javascript
复制
sfdisk -J /dev/sda

以及

代码语言:javascript
复制
bklid

在我想要恢复的机器上,我基本上是这样做的:

代码语言:javascript
复制
echo "label: gpt" | sfdisk /dev/sda

FULL_DISK_SIZE=`sfdisk -s /dev/sda`
let VARIABLE_SIZE=$FULL_DISK_SIZE/1024/1024-10

cat < /tmp/sfdisk.txt
size=512M, type=${SFDISK_TYPE_BOOT}, uuid=${SFDISK_UUID_BOOT}
size=${VARIABLE_SIZE}G, type=${SFDISK_TYPE_LINU}, uuid=${SFDISK_UUID_LINU}
type=${SFDISK_TYPE_SWAP}, uuid=${SFDISK_UUID_SWAP}
EOT

sfdisk /dev/sda < /tmp/sfdisk.txt

其主要思想是保留原始分区类型以及部分uuids,但在linux分区的大小方面是灵活的。我粗略地说这里是全尺寸减去10 GB。

然后,我恢复这样的一切:

代码语言:javascript
复制
fsarchiver restfs sourceimage.fsa id=0,dest=/dev/sda1 id=1,dest=/dev/sda2

这是在完全相同硬盘的机器上工作的。如果硬盘是不同的,我不能从它启动。

如果我定期在这些机器上安装Linux,保存分区信息,擦除它们,然后再次尝试从上面的过程,它仍然失败与旧的分区信息(不足为奇),但它立即开始工作,如果我使用新磁盘的部分uuid的EFI驱动器。这让我相信这些部分都与此有关。

然后,我回到原来的机器上,恢复了它上的图像,但我用一个字母更改了EFI分区的uuid部分,看看它是否会出错--它确实会这样做。另外,让sfdisk自动生成部分uuid并不会使驱动器在恢复映像后可引导。

我不在乎这个部分是保存的还是新的,但我确实想让它自动化。你知道我需要改变什么才能成功吗?

EN

回答 1

Unix & Linux用户

发布于 2018-12-12 22:01:13

我想我已经搞清楚了。这部分在结尾时丢失了:

代码语言:javascript
复制
mount -o rw,remount /sys/firmware/efi/efivars
efibootmgr -c -g --disk /dev/sda --part 1 -l \\EFI\\debian\\grubx64.efi
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/487631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档