AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 707610
Accepted
terdon
terdon
Asked: 2022-06-27 08:20:40 +0800 CST2022-06-27 08:20:40 +0800 CST 2022-06-27 08:20:40 +0800 CST

这是将数据迁移到新计算机的安全方法吗?

  • 772

我最近买了一台新笔记本电脑,我想尽可能少地迁移到它。我不想重新安装,因为我已经对我当前的设置进行了各种调整,例如从我的 NAS 自动安装远程驱动器、配置网络等,我不想重做。

我目前的想法是,我可以将硬盘驱动器的内容转储到一个文件中,然后cat将该文件转储到新驱动器上。总体思路是:

  1. 在旧计算机上,将驱动器放入外部 USB 磁盘上的文件并(以 root 身份):

    # cat /dev/sda > /mnt/externalUsb/sda.img
    
  2. 然后我启动到新计算机上的实时系统,连接外部驱动器并(以 root 身份):

    # cat /mnt/externalUsb/sda.img | sudo tee /dev/sda
    
  3. 关闭实时会话,重新启动机器,我希望自己处于一个工作系统中,它是我旧机器的完美克隆。

或者,也许更现实的是,类似:

  1. 在新机器上创建我想要的分区,确保它们比我旧机器上的同等分区大。

  2. 在旧计算机上,将分区转换为外部 USB 磁盘上的文件(以 root 身份):

    for i in 5 6; do cat /dev/sda"$i" > /mnt/externalUsb/sda"$i".img; done
    
  3. 在新机器上,确保数字相同或相应地修改命令后:

    for i in 5 6; do cat /mnt/externalUsb/sda"$i".img; > /dev/sda"$i"; done
    

一些相关说明:

  • 由于我将从ThinkPad T460P 转移到ThinkPad P14s Gen 2 ,因此新旧机器的硬件相对相似。
  • 新机1TB硬盘,旧机只有512G。
  • 我正在使用 Arch,双启动与 Windows 10。我并不特别担心保持 Windows 安装。

我当前机器的磁盘设置:

$ sudo parted -l
Model: ATA SAMSUNG MZ7LN512 (scsi)
Disk /dev/sda: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name                          Flags
 1      1049kB  274MB   273MB   fat32           EFI system partition          boot, hidden, esp
 2      274MB   290MB   16.8MB                  Microsoft reserved partition  msftres
 3      290MB   86.4GB  86.1GB  ntfs            Basic data partition          msftdata
 5      86.4GB  136GB   50.0GB  ext4
 6      136GB   437GB   301GB   ext4
 9      437GB   485GB   47.3GB  ntfs                                          msftdata
 8      485GB   495GB   10.5GB  ext4
 7      495GB   511GB   16.1GB  linux-swap(v1)                                swap
 4      511GB   512GB   1049MB  ntfs            Basic data partition          hidden, diag

我期望内核在第一次启动时检测到新的/不同的硬件并自动为我整理出来。我在这里遗漏了一些明显的东西吗?我可能遇到的任何具体问题?新驱动器更大,所以这应该不是问题,对吧?我有一个 ecryptfs 加密的目录(实际上是其中两个),我是否正确地假设这不会成为问题?我是否需要做一些特别的事情来处理 EFI 系统分区?


我接受了 MC68020 的有用答案,但我最终采取了不同的方法:我启动了一个实时系统,创建了根目录和/home分区,然后按照 Arch Wiki 中的描述rsync复制了我所有的文件。

我设法启动了“新”系统,但它仍然需要一些调整,尤其是图形驱动程序。如果您不熟悉 Linux 并且喜欢修修补补,那么这不是一种可以采用的方法。当然,如果你不喜欢它,你不太可能会使用 Arch。

cloning migration
  • 2 2 个回答
  • 83 Views

2 个回答

  • Voted
  1. Best Answer
    MC68020
    2022-06-28T04:24:22+08:002022-06-28T04:24:22+08:00

    以下仅出于编辑原因的舒适性。由于它的价值不超过评论,请随时删除它。


    ext4 :从 linux-5.10 开始,ext4 带有一些新的、更轻量级的日志方法,也称为fast-commit。
    基准报告表明本地文件系统提高了 20-200%,NFS 工作负载提高了 30-75%。
    如果运行一些 >=5.10 的内核,毫无疑问你只是想要那个。
    但是由于快速提交是在文件系统创建时激活的,那么如果您的文件系统是在该功能可用之前创建的,您确实需要使用fast_commit显式启用的选项重新创建它们。(见 man mke2fs 和 man ext4)

    由于 linux-5.10 是在 2021 年前夕推出的,那么如果您的 ext4 fs 之前已经创建(以 root 身份启动dumpe2fs *yourdevice* | grep created会告诉您),那么支持此功能的可能性很小。不过,检查此功能是否实际激活
    似乎更直接。cat /proc/fs/ext4/*yourdevice*/options


    英伟达:我的错!那么实际上从 NVIDIA GeForce 940MX 2GB 转移到 NVIDIA Quadro T500 4GB 呢?使用 Nvidia 专有驱动程序?
    如果是这样,那么只需确保您当前的驱动程序版本 >= 到 450.102.04(因为从该版本中添加了对 T500 的支持)
    我无论如何都会在克隆后运行 nvidia-settings 实用程序以利用新功能。
    顺便说一句,4GB?嗯……可能会觉得这有点矫枉过正?可能想重新分配给其他用途。


    Wifi:(我认为特别是 Intel Wi-Fi 6 AX210)
    您应该知道,一些发行版报告了在较新的内核版本下 iwlwifi 出现问题。特别参见Red-Hat bugzilla。
    据我了解,一个补丁应该已经提交了 5.15 次(并且几乎可以肯定是向后移植到 LTS),但是谨慎的命令你首先要进行交叉检查。
    除此之外,您还会遇到 wifi 适配器的麻烦。他们总是需要一些固件 blob 才能运行。
    然后,无论您的内核是否获得并可能加载适当的驱动程序,它都可能无法找到固件,因为根据您的发行版/制造商和版权,可能会要求您安装某些特定的软件包,甚至从制造商的回购。

    • 1
  2. etosan
    2022-06-27T13:45:54+08:002022-06-27T13:45:54+08:00

    安装新笔记本电脑,测试它是否工作,然后直接从新操作系统安装另一个驱动器或引导到 livecd 并以这种方式安装它会容易得多。rsync然后你会用or的方式移动你感兴趣的东西,比如你的 homedir tar。

    我当然会反对驱动器之间的任何盲目的 dd/cating 数据,您忽略了一些警告,这可能会让您非常难以理解。

    第二个 GPT 副本只是其中之一!

    • 0

相关问题

  • 需要帮助阅读 rsync 日志。使用 rsync 检查克隆磁盘与原始磁盘具有相同文件的问题

  • ntfsclone,仅元数据克隆....为什么?

  • 将 Ubuntu 服务器复制到另一个 ubuntu 服务器 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve