正确将分区数据复制到另一个磁盘吗?

正确将分区数据复制到另一个磁盘吗?

我有一个磁盘,其中每个文件夹都有单独的分区(/usr、/var、/home 等),并希望将整个东西传输到另一个稍大的磁盘,现在我不想保留分区方案,因此我应该挂载所有分区(以便它们填充正确的文件夹位置)然后 rsync,或者 cp -avx 将整个分区(当然在运行级别 1 下)复制到新驱动器?

在手动复制所有其他文件之前,我是否需要使用 dd 将根分区 / 和 /boot 复制到磁盘?

我真的只是想摆脱多个分区,这样我就可以使用 LVM,但我不知道如何以“正确”的方式传输它。

答案1

通常我通过在两个硬盘之间进行 rsync 来进行此类传输,因此您对 rsync 或 cp -avx 的猜测对我来说非常正确。

为了像从旧磁盘启动一样从新磁盘启动,您只需要在新的启动扇区中重新安装 grub(我假设您在这里使用 grub)。

对于基于 RedHat 的 Linux 发行版(CentOS、RHEL、Fedora),您可以通过以 root 身份执行此操作grub-install /dev/hdX,只需告知您的新硬盘在哪里。

对于 Debian 系统,你需要执行sudo update-grub

重新安装 grub 有时需要反复试验,所以要小心。

如果您想以手动方式执行此操作,请按照以下步骤进行操作:

检查新磁盘是否出现在 grubdevice.map文件中

(fd0)     /dev/fd0
(hd0)     /dev/hda
(hd1)     /dev/hdc

一旦您从旧驱动器启动的操作系统中知道新驱动器位于 device.map 中,请执行以下命令

# grub
grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0xfd

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.

意识到:您需要用适合您的内核映像的磁盘和分区替换(hd0,0)

如果您的内核位于分区 /dev/hdX1 -> (hdX,0) 如果您的内核位于分区 /dev/hdX2 -> (hdX,1)

等等...

还要用 device.map 中声明的驱动器替换 hdX,因此如果您的驱动器声明为 (hd1),则需要将其改为 (hd1,X)

相关内容