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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 3402
Accepted
mlissner
mlissner
Asked: 2010-09-01 16:56:12 +0800 CST2010-09-01 16:56:12 +0800 CST 2010-09-01 16:56:12 +0800 CST

如何将引导和根分区移动到另一个驱动器

  • 772

我的计算机上有两个具有以下配置的驱动器:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

不幸的是,驱动器 2 似乎快要死了,因为尝试写入它会给我带来错误,并且检查 SMART 设置显示了一种可悲的事态。

我在驱动器 1 上有足够的空间,所以我想做的是将 / 和 /boot 分区移到它,从系统中删除驱动器 2,用新驱动器替换驱动器 2,然后反转该过程。

我想我需要对 grub 进行一些更新,并且我需要移动一些东西,但我很困惑如何准确地做到这一点。由于这是我的主计算机,所以我要小心不要把事情搞砸,所以我无法启动。

fstab partitioning
  • 3 3 个回答
  • 87618 Views

3 个回答

  • Voted
  1. maco
    2010-09-01T22:14:45+08:002010-09-01T22:14:45+08:00

    您需要从 live cd 启动。为它们添加分区到磁盘1,将所有内容复制过来,然后用于sudo blkid获取每个分区的UUID。在磁盘 1 的新 / 上,编辑 /etc/fstab 以使用您刚刚查找的新 UUID。

    更新 GRUB 取决于它是 GRUB1 还是 GRUB2。如果是 GRUB1,则需要编辑 /boot/grub/device.map

    如果是 GRUB2,我认为您需要像在真实情况下那样挂载您的分区。例如:

    sudo mkdir /media/root
    sudo mount /dev/sda1 /media/root
    sudo mount /dev/sda2 /media/root/boot
    sudo mount /dev/sda3 /media/root/home
    

    (当然,填写您将内容复制到的任何实际分区)

    然后在/media/root下绑定mount /proc和/dev:

    sudo mount -B /proc /media/root/proc
    sudo mount -B /dev /media/root/dev
    sudo mount -B /sys /media/root/sys
    

    现在 chroot 进入驱动器,这样您就可以强制 GRUB 根据新布局自行更新:

    sudo chroot /media/root
    sudo update-grub
    

    第二个命令会发出一个抱怨(虽然我忘记了它是什么......),但可以忽略。

    通过移除坏驱动器来测试它。如果它不起作用,坏驱动器应该仍然能够引导系统,但我相信这些都是必要的步骤。

    • 33
  2. sBlatt
    2010-09-02T01:53:44+08:002010-09-02T01:53:44+08:00

    如果您立即更换驱动器,则可以使用dd(几个月前在我的服务器上尝试过,效果很好)。

    为此,您还需要一张引导 CD。

    1. 启动引导光盘
    2. 仅安装驱动器 1
    3. 运行dd if=/dev/sdb1 of=/media/drive1/backuproot.img- sdb1 是您的根 ( /) 分区。这会将整个分区保存在一个文件中。
      • 同样的/boot
    4. 关机,更换磁盘,开机
    5. 运行dd if=/media/drive1/backuproot.img of=/dev/sdb1- 将其写回。
      • 同样的/boot

    以上将创建 2 个分区,其大小与以前完全相同。您可能需要调整 grub(查看 macos 帖子)。

    如果您想调整分区大小(就像我一样):

    1. 在新驱动器上创建 2 个分区(用于/和/boot; 任意大小)
    2. 挂载备份映像:mount /media/drive1/backuproot.img /media/backuproot/
    3. 挂载空/分区:mount /dev/sdb1 /media/sdb1/
    4. 将其内容复制到新分区(我不确定这个命令,保留所有权非常重要,cp -R不会这样做!) cp -R --preserve=all /media/backuproot/* /media/sdb1
      • 同样的/boot/

    这应该这样做。

    • 6
  3. Best Answer
    mlissner
    2010-09-05T00:35:44+08:002010-09-05T00:35:44+08:00

    我对此的最终解决方案是结合了多种技术:

    1. 我同时将垂死的驱动器及其替换件连接到计算机。
    2. 新驱动器比旧驱动器小,所以我使用 GParted 缩小了旧驱动器上的分区。
    3. 之后,我复制了旧驱动器上的分区,并将它们粘贴到新驱动器上(也使用 GParted)。
    4. 接下来,我将引导标志添加到新驱动器上的正确分区,因此它实际上是旧驱动器的镜像。

    这一切都很好,但我需要按照此处的说明更新 grub2 。

    在这一切完成之后,事情似乎奏效了。

    • 6

相关问题

  • Linux 文件系统层次结构中的默认目录是什么意思?

  • 如何将 /usr 移动到新分区?

  • 如何从双启动计算机访问加密的主文件夹?

  • 您对台式机和家庭服务器的驱动器分区方案有什么建议?[关闭]

  • 如何避免启动时出现“S to Skip”消息?

Sidebar

Stats

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

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve