使用 VMware 启动物理硬盘上的 Linux (CentOS 7), 并用 GRUB2 手动引导

NAS 用的系统盘出现坏道, 时不时能听到 哒, 哒, 哒 的声音. 需要在他彻底坏掉之前把数据备份出来, 换上新的硬盘.
于是想到如果能用 VMWare 虚拟机加载快坏的物理硬盘中的系统, 可以在旧系统里面拷贝数据到新的系统里面。每个文件的位置也能清楚的找到

磁盘分区情况如下

Snipaste_2018-02-18_20-30-44.png

找到 boot 分区 /dev/sda2

准备条件

VMware® Workstation 14 Pro 14.1.1 build-7528167
Linux Mint 的安装盘的 ISO 镜像文件 linuxmint-18.3-kde-64bit.iso

建立虚拟机步骤

在 VMWare 中新建虚拟机

虚拟机参数根据实际情况设定

Snipaste_2018-02-18_20-38-15.png

Snipaste_2018-02-18_20-36-41.png

Snipaste_2018-02-18_20-36-55.png

Snipaste_2018-02-18_20-37-54.png

删除虚拟机中的默认硬盘

在上一个步骤中, 默认建立了一个硬盘。我们要把这个硬盘删掉。手动建立硬盘。

加载物理分区

编辑虚拟机设置

Snipaste_2018-02-18_20-52-51.png

将磁盘删除

Snipaste_2018-02-18_20-53-55.png

然后点击 添加 按钮。选择 磁盘, 点下一步

Snipaste_2018-02-18_20-54-32.png

这里应该根据物理硬盘的类型选择, 我选择的是 SATA。点下一步

Snipaste_2018-02-18_20-54-57.png

选择 使用物理磁盘 选项。点击下一步

Snipaste_2018-02-18_20-55-16.png

选择 Linux 所在的磁盘设备, 然后选择 使用单个分区 。点下一步

Snipaste_2018-02-18_20-55-48.png

选择 Linux 的分区, 包括交换分区。我的整个磁盘都是 Linux 我全部选择了。点下一步

Snipaste_2018-02-18_20-57-01.png

点击完成按钮。完成了物理磁盘的加载。

Snipaste_2018-02-18_20-57-23.png

建立引导分区

我们需要在建立一个虚拟硬盘来引导 Linux。重复上面的步骤, 建立虚拟硬盘。在选择磁盘步骤。选择 创建新虚拟磁盘。点击下一步

Snipaste_2018-02-18_21-09-56.png

这个磁盘的容量不需要很大, 1G 已经足够大了

Snipaste_2018-02-18_21-10-28.png

建立完成后如下

Snipaste_2018-02-18_21-11-23.png

检查一下磁盘的 虚拟设备结点, 保证物理磁盘是 0:0

Snipaste_2018-02-18_21-11-43.png

Snipaste_2018-02-18_21-12-09.png

用 Linux Mint 光盘镜像引导虚拟机

首先设置光盘镜像

Snipaste_2018-02-18_21-13-23.png

然后, 启动虚拟机。

启动一个终端, 输入 sudo fdisk -l 来查看磁盘情况。我的虚拟磁盘如下。

加载的物理磁盘是 /dev/sda, 新创建的 1G 虚拟磁盘是 /dev/sdb

Snipaste_2018-02-18_21-30-54.png

为启动盘创建分区

  1. 输入 sudo fdisk /dev/sdb, 在 sdb 上创建分区
  2. 输入 n, 建立新分区
  3. 然后输入 p, 建立主分区
  4. 后续步骤都是用默认选项
  5. 最后输入 w 写入并退出 fdisk

Snipaste_2018-02-18_21-46-23.png

在启动分区上创建引导记录

首先, 要挂载 boot 分区。我的 boot 分区是 /dev/sda2
然后, 用 grub-install 命令创建引导记录

mint@mint ~ $ sudo mkdir /mnt/boot
mint@mint ~ $ sudo mount /dev/sda2 /mnt/boot
mint@mint ~ $ sudo grub-install --boot-directory=/mnt/boot /dev/sdb
grub-probe: error: failed to get canonical path of 'aufs'.
Installing for i386-pc platform.
Installation finished. No error reported.
mint@mint ~ $

启动 Mint

现在可以重启系统。

  1. 在虚拟机启动时, 按 F2 键进入虚拟机的 bios 设置
  2. 在 boot 选项页面, 调整 Hard Drive 设备的启动顺序
  3. 0:2 设备作为第一个启动的 Hard Deive 设备

Snipaste_2018-02-18_22-07-08.png

成功进入 GRUB2 引导界面

Snipaste_2018-02-18_22-12-51.png

手动引导启动系统

root 目录为 boot 所在目录, 其中内核 vmlinuzinitrd.img 的版本号可按 Tab 键自动查看

# 其中 hd0 为根目录所在的磁盘, IDE 硬盘用 hd 开始, SCSI 硬盘用 sd 开头。软盘用 fd 开头。命名和linux 不大一样。是从0算起。
# 输入 hd 后按 tab 键可以进行查看。msdos1 为根目录所在的分区, 输入 msdos 后按 tab 键可以进行查看
grub>set root=(hd1,5)

# 其中 xxx-xxx 为内核版本, 输入 /boot/vmlinuz 后按 tab 键可以进行自动补全
# sda5 为根目录所在的分区
# 若 boot 目录是单独分区同上为 linux /vm...
# 若 boot 不是单独分区就输入 linux /boot/vm...
grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5

grub>initrd /boot/initrd.img-xxx-xxx

# 启动系统w, 成功~
grub>boot

原文

http://www.cnblogs.com/qiaoyanlin/p/6901242.html
GRUB2手动引导Ubuntu
Grub2启动项的修改和相关操作命令

最后更新于 2018-02-18
使用 Hugo 构建
主题 StackJimmy 设计