我的笔记本电脑上运行着 Debian 10 系统,我想将其克隆到我的 Ubuntu 笔记本电脑(其硬盘驱动器比 Debian 笔记本电脑更大),完全替换 Ubuntu 安装。完成此任务的最简单、最快的方法是什么,以便我可以启动并运行所有主题、配置文件、别名完好无损,并且一切看起来都像我当前的 Debian 系统上一样?
答案1
缺少细节
做这种事情是一件严肃的事情,不能掉以轻心。作为一个曾经做过这件事的人,我必须说魔鬼藏在细节中;您在问题中遗漏的详细信息:
当前的确切分区配置是什么每个机器?
- 单个操作系统分区,或单独的
/
、/home
、/usr
和/var
? - 使用交换分区,还是不使用?
- 混合中是否有数据存储、其他操作系统或仅引导(la EFI)分区?
- 当前分区的顺序是什么?
- 每台机器只有一个磁盘吗?
- 单个操作系统分区,或单独的
分区类型是什么每个机器(MBR 还是 GPT?)
- 当前的启动模式是什么每个机器(经典 BIOS/CSM、UEFI 或上帝保佑的 UEFI+安全启动?),您可以更改目标机器的启动模式吗?
- 您使用的磁盘接口是什么类型每个机器(PATA 还是 SATA?)
从源计算机拔出磁盘是可行的还是理想的选择?或者您更愿意通过以太网线进行操作?
- 如果您更愿意通过有线方式进行操作,两台计算机之间是否存在有线链路并且速度是否超过 1Gbps+?
如果您选择从源计算机拔出磁盘;将其插入目标机器是否是可行或理想的选择?
- 如果没有,目标机器上是否有外部 SATA/eSATA 连接器? (连同必要的电缆/电源适配器一起使用?)
- 如果仍然不行,您有可以使用的 USB 3.0+ 硬盘适配器吗? (目标机器是否支持USB 3.0+?)
内核的initramfs是如何运行的来源机器最初是在安装时配置的? (“完整驱动程序”,还是“所需最少驱动程序”?)
- 您对命令行的了解程度如何? (也就是说,您可以在命令行上“以 root 身份登录”、“只读挂载”、“绑定挂载”和“chroot 进入”吗?)
我使用的是不同的 Debian 版本,其配置与您的不同。如果您的问题中没有这些信息,恐怕你正在离开这个问题非常开放式并且回答起来非常耗时...
简单的方法
这是一种简单的(主要是点击式)方法,但可以说是冗长、脆弱的,并且依赖于很多假设......
假设两个都机器:单分区操作系统、无交换分区、无其他分区、MBR 分区方案、经典 BIOS、SATA 磁盘接口、拔出源磁盘并将其插入目标机器中是可以且理想的...
- 确保两台机器均已关闭。
- 从源计算机上拔下源磁盘。
- 将源磁盘连接到目标计算机,确保它没有被检测为第一个磁盘。
- 使用现代 GNU/Linux 启动盘启动目标计算机,确保没有安装任何分区。
- 用于
gparted
删除这目标磁盘上的 Ubuntu 分区。 - 用于
clonezilla
复制这源分区从源磁盘逐字到目标磁盘。 (过程漫长) - 用于
gparted
扩展这目标分区以适应空间。 (冗长且狡猾的过程) - 重新初始化目标磁盘的引导加载程序(使用任何必要的方法)。
- 关闭目标机器
- 从目标计算机上删除源磁盘。
- 将源磁盘重新插入源计算机。
- 断开目标计算机的网络连接。
- 启动目标机器(启动时请交叉手指)。
- 登录(可能以 root 身份)。
- 重新配置您的主机名。
- 重新配置您的 IP 地址。
- 将目标机器连接到网络。
- 享受新机吧!
但要是有那么容易就好了...
如果任何假设是错误的(我知道在大多数现代桌面系统上至少有 3 个假设可能是错误的);所有的赌注都将落空,并且您很可能会在目标计算机上留下无法启动或严重受损的系统。
事实上,我已经根据我的方式起草了一个替代答案实际上做了这个几年前使用 Debian 5.0“Lenny”超过 100 Mbps 以太网线,但它假设您非常了解与此类任务相关的 GNU/Linux 命令行和系统实用程序;我无法调整它来匹配你的问题,除非你编辑您的问题以解决缺少的详细信息多于。
答案2
创建 2 个 Debian Live USB(例如:标准ISO)
在 Ubuntu 机器上,从 debian live 启动,然后设置 root 密码并通过 ssh 配置 root 访问。
sudo -s
passwd
apt update
apt install ssh
将以下行添加到您的/etc/ssh/sshd_config
:
PermitRootLogin yes
然后:
systemctl restart ssh
在 Debian 机器上:从 debian live 启动,设置 ssh :
sudo -s
apt update
apt install ssh
systemctl start ssh
然后克隆您的设备(例如/dev/sda
:)
dd bs=128K if=/dev/sda | ssh root@destination "dd bs=128K of=/dev/sda conv=noerror,sync status=progress"
在远程计算机上重新安装 grub:
ssh root@destination
mkdir /mnt/target
mount /dev/sdaX /mnt/target
mount --bind /proc /mnt/target/proc
mount --bind /sys /mnt/target/sys
mount --bind /dev /mnt/target/dev
mount --bind /run /mnt/target/run
cp /etc/resolv.conf /mnt/target/etc/resolv.conf
/dev/sdaX
:根分区,应安装单独的引导分区。
重新安装 grub 之前,使用命令blkid
检查/etc/fstab
( ) 下的 UUID。/mnt/target/etc/fstab
重新安装 grub :
chroot /mnt/target /bin/bash
grub-install /dev/sda
exit
卸载已安装的分区然后重新启动。
Debian:重新安装 Grub EFI
ArchLinux:克隆整个硬盘