我使用以下命令创建了我的服务器的备份:
tar -cvzf ~/clone.tgz --exclude ~/clone.tgz /etc /home /opt /tmp /usr /var
然后我想将此备份还原到另一台服务器(除了硬盘之外,硬件相同,我将其升级为 SSD)。已经全新安装了相同的 Ubuntu 发行版。
我首先备份了以下文件:
- /etc/hosts
- /etc/主机名
- /etc/主机.conf
因此我运行以下命令:
tar -xvpzf ~/clone.tgz -C /
一旦文件恢复,我就会恢复主机文件。
一切似乎都很好,所以我重新启动了服务器,但它无法启动。由于服务器托管在远程位置,因此我无法在启动期间访问它。我所能做的就是重新开始。
什么可以解释这个问题?是否有一个文件在还原过程中我不应该覆盖?
答案1
使用命令tar -xvpzf ~/clone.tgz -C /
恢复全部,,,,,,,/etc
。/home
/opt
/tmp
/usr
/var
我相信,您遇到的问题不仅仅是错误的 UUID /etc/fstab
。
- 完全恢复
/etc
,有问题 - 完全恢复
/usr
,坏主意 - 完全恢复
/var
,坏主意
也适用于相同的机器。
我的建议是,重新安装服务器。
答案2
问题是什么
grub
您的 中的 UUID有问题/etc/fstab
。
里面有这样/etc/fstab
一行字:grub.cfg
..... UUID=73faad0d-2343-4f69-8103-92dbbaf40a5f .....
Linux 中的每个分区都有一个唯一的标识符,称为UUID
,它是在创建分区时分配的。Linux 使用它UUID
来区分分区。更换硬盘后,您必须将所有旧 UUID 更改为新 UUID,可以通过运行命令来检查blkid
。
该怎么办
您必须从 Ubuntu Live CD 启动并将中的所有旧内容替换UUID
为新内容。这是另一个UUID
/etc/fstab
grub.cfg
问答您可以在此处找到进一步的说明。然后grub
使用此更新问答或者简单地安装并运行 Boot Repair选择建议修复选项。
答案3
我最终这样做了:
安装全新的 Ubuntu 服务器
导出旧服务器上已安装软件包的列表:
dpkg --get-selections >output-file
在新服务器上导入列表:
sudo dpkg --set-selections <output-file sudo apt-get dselect-upgrade
我只需要设置/创建几个用户和权限以及从旧服务器复制几个应用程序配置文件,但总的来说速度非常快。