在 Ubuntu 16.04 中添加额外的硬盘

ram*_*ter 11 hard-drive

我最近构建了一台 Ubuntu 机器,但对 Linux 一无所知,我很好奇它是什么样的:)

我在安装 Ubuntu 时使用了 1 个硬盘。几天前,我决定再添加一个使用 SATA 电缆直接连接到主板的 HDD。

我的问题是:如何使第二块硬盘成为永久硬盘,就像我的主硬盘一样?

我的计算机似乎将我的附加硬盘识别为可移动驱动器(它旁边有一个“卸载按钮”)。

如果你能指导我一步一步的过程,那将是非常有帮助的。谢谢

Tak*_*kat 16

预先存在的分区布局的前言

下面所写的所有内容都假设您的附加硬盘驱动器只有一个分区并且格式化为 ext4(Ubuntu 默认)。我们还假设现有的硬盘驱动器设备名称/dev/sda至少包含sda1用于 root 和sda2交换的分区。

在终端中使用此命令列出所有分区(sudo将询问您必须盲目输入的密码):

sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)

例子:

Disk /dev/sda: 55,9 GiB, 60022480896 bytes, 117231408 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0001fb85

Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1  *     2048 117229567 117227520 55,9G 83 Linux


Disk /dev/sdb: 2,7 TiB, 3000592982016 bytes, 5860533168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: DA1A0C2A-06C2-4648-85BF-720E005BD5BD

Device        Start        End    Sectors  Size Type
/dev/sdb1  81920000 5860532223 5778612224  2,7T Linux filesystem
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,磁盘/dev/sda包含一个分区/dev/sda1/dev/sdb包含一个分区/dev/sdb1(我的交换在另一块硬盘上)。

在这里检查分区是否/dev/sdb1真的来自新驱动器。

为新驱动器创建挂载点

我们可以为包含新驱动器的目录(挂载点)或子目录指定任何名称,但我们应该避免使用已经存在(或可能稍后存在)的名称。下面只是一个例子,选择最适合你的布局。

现在让我们选择一个简单的名称data1并将其挂载到/data1. 在您的终端中输入以下命令:

sudo mkdir /data1
Run Code Online (Sandbox Code Playgroud)

首先卸载新硬盘,然后将其(大概/dev/sdb1)挂载到新挂载点以查看一切是否如预期:

sudo mount /dev/sdb1 /data1
sudo chmod 755 /data1  ## make sensible permissions
cd /data1              ## change to the mount directory
ls -a                  ## list content of the new hard drive
Run Code Online (Sandbox Code Playgroud)

如果一切正常,我们可以卸载驱动器

sudo umount /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

有关挂载和挂载点的更多信息:

获取新硬盘分区的 UUID

任何硬盘驱动器的任何分区都有一个唯一编号,称为UUID(通用唯一标识符)。因此,您的旧硬盘驱动器将有一个 UUID,而您的新驱动器将有另一个。稍后将使用此 UUID 来确保它是我们挂载的正确分区。要列出附加驱动器问题的 UUID:

sudo blkid
Run Code Online (Sandbox Code Playgroud)

在结果列表中,您将找到每个已注册分区的设备名称,它是 UUID(您可能没有LABEL)。

例子:

/dev/sda1: LABEL="ROOT" UUID="ede85c57-e919-4e1f-be24-f8bae5dbb500" TYPE="ext4" PARTUUID="0001fb85-01"
/dev/sdb1: LABEL="BIGSHARE" UUID="c3fa201e-f00b-4959-ae27-4a947d7c2584" TYPE="ext4" PARTUUID="a2617ede-6bd2-40c1-8f4c-2a28a0c839af"
Run Code Online (Sandbox Code Playgroud)

复制新驱动器的 UUID(上面的 UUID 是c3fa201e-f...你的会有所不同),以便稍后粘贴。

编辑 fstab 以添加新驱动器

我们有一个配置文件/etc/fstab,其中列出了将在启动时挂载的所有分区。

  1. 让我们首先备份该文件以便能够恢复更改:

    sudo cp /etc/fstab /etc/fstab.bak
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后通过以 root 身份编辑此文件来添加一个新分区:

    sudo nano /etc/fstab
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在该文件的底部添加类似于以下内容的行:

    UUID=<paste number copied from above>   /data1    ext4    defaults    0    2
    
    Run Code Online (Sandbox Code Playgroud)
  4. Ctrl+O然后写入文件Return。用Ctrl+退出编辑器X

fstab 的详细信息:Ubuntu Community Wiki

测试设置

要查看驱动器是否正确安装,我们可以在启动时模拟安装过程

sudo mount -a
Run Code Online (Sandbox Code Playgroud)

现在可以看到新硬盘驱动器的所有文件,/data1它们在下次重新启动时仍然存在。

想要将所有 HOME 移动到新驱动器吗?

我们可能希望将所有 HOME 目录移动到该新驱动器。为此,请参阅我对以下问题的回答:

备择方案

有关替代方法,请参阅:如何在启动时安装新驱动器