[#]: collector: (lujun9972) [#]: translator: (luckyele) [#]: reviewer: (wxy) [#]: publisher: (wxy) [#]: url: (https://linux.cn/article-10658-1.html) [#]: subject: (How to add new disk in Linux) [#]: via: (https://kerneltalks.com/hardware-config/how-to-add-new-disk-in-linux/) [#]: author: (kerneltalks https://kerneltalks.com) 如何在 Linux 中添加新磁盘 ====== > 在 Linux 机器中添加磁盘的逐步过程。 ![New disk addition in Linux][1] 本文将向你介绍在 Linux 机器中添加新磁盘的步骤。将原始磁盘添加到 Linux 机器可能非常依赖于你所拥有的服务器类型,但是一旦将磁盘提供给机器,将其添加到挂载点的过程几乎相同。 **目标**:向服务器添加新的 10GB 磁盘,并使用 lvm 和新创建的卷组创建 5GB 装载点。 ### 向 Linux 机器添加原始磁盘 如果你使用的是 AWS EC2 Linux 服务器,可以 [按照以下步骤][2] 添加原始磁盘。如果使用的是 VMware Linux VM,那么需要按照不同的步骤来添加磁盘。如果你正在运行物理机架设备/刀片服务器,那么添加磁盘将是一项物理任务。 一旦磁盘物理/虚拟地连接到 Linux 机器上,它将被内核识别,就可以开始了。 ### 识别 Linux 最新添加的磁盘 原始磁盘连接后,需要让内核去 [扫描新磁盘][3]。在新版中,它主要是由内核自动完成。 第一件事是在内核中识别新添加的磁盘及其名称。实现这一点的方法有很多,以下作少量列举: * 可以在添加/扫描磁盘前后观察 `lsblk` 输出,以获取新的磁盘名。 * 检查 `/dev` 文件系统中新创建的磁盘文件。匹配文件和磁盘添加时间的时间戳。 * 观察 `fdisk-l` 添加/扫描磁盘前后的输出,以获取新的磁盘名。 在本示例中,我使用的是 AWS EC2 服务器,向服务器添加了 5GB 磁盘。我的 lsblk 输出如下: ``` [root@kerneltalks ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 disk ├─xvda1 202:1 0 1M 0 part └─xvda2 202:2 0 10G 0 part / xvdf 202:80 0 10G 0 disk ``` 可以看到 `xvdf` 是新添加的磁盘。完整路径是 `/dev/xvdf`。 ### 在 LVM 中添加新磁盘 我们这里使用 LVM,因为它是 Linux 平台上广泛使用的非常灵活的卷管理器。确认 lvm 或 lvm2 软件包[已经安装在系统上][4]。如未安装,请 [安装 lvm/lvm2 程序包][5]。 现在,我们将在逻辑卷管理器中添加这个原始磁盘,并从中创建 10GB 的挂接点。所用到的命令如下: * [pvcreate][6] * [vgcreate][7] * [lvcreate][8] 如果要将磁盘添加到现有挂接点,并使用其空间来[扩展挂接点][9] ,则 `vgcreate` 应替换为 `vgextend`。 会话示例输出如下: ``` [root@kerneltalks ~]# pvcreate /dev/xvdf Physical volume "/dev/xvdf" successfully created. [root@kerneltalks ~]# vgcreate vgdata /dev/xvdf Volume group "vgdata" successfully created [root@kerneltalks ~]# lvcreate -L 5G -n lvdata vgdata Logical volume "lvdata" created. ``` 现在,已完成逻辑卷创建。你需要使用所选的文件系统格式化它,并将其挂载。在这里选择 ext4 文件系统,并使用 `mkfs.ext4` 进行格式化。 ``` [root@kerneltalks ~]# mkfs.ext4 /dev/vgdata/lvdata mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done ``` ### 在挂载点上从新磁盘挂载卷 使用 `mount` 命令,在 `/data` 安装点上安装已创建并格式化的 5GB 逻辑卷。 ``` [root@kerneltalks ~]# mount /dev/vgdata/lvdata /data [root@kerneltalks ~]# df -Ph /data Filesystem Size Used Avail Use% Mounted on /dev/mapper/vgdata-lvdata 4.8G 20M 4.6G 1% /data ``` 使用 `df` 命令验证挂载点。如上所述,你都完成了!你可以在 [/etc/fstab][10] 中添加一个条目,以便在重新启动时保持此装载。 你已将 10GB 磁盘连接到 Linux 计算机,并创建了 5GB 挂载点! -------------------------------------------------------------------------------- via: https://kerneltalks.com/hardware-config/how-to-add-new-disk-in-linux/ 作者:[kerneltalks][a] 选题:[lujun9972][b] 译者:[luckyele](https://github.com/luckyele) 校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://kerneltalks.com [b]: https://github.com/lujun9972 [1]: https://i1.wp.com/kerneltalks.com/wp-content/uploads/2019/03/How-to-add-new-disk-in-Linux.png?ssl=1 [2]: https://kerneltalks.com/cloud-services/how-to-add-ebs-disk-on-aws-linux-server/ [3]: https://kerneltalks.com/disk-management/howto-scan-new-lun-disk-linux-hpux/ [4]: https://kerneltalks.com/tools/check-package-installed-linux/ [5]: https://kerneltalks.com/tools/package-installation-linux-yum-apt/ [6]: https://kerneltalks.com/disk-management/lvm-command-tutorials-pvcreate-pvdisplay/ [7]: https://kerneltalks.com/disk-management/lvm-commands-tutorial-vgcreate-vgdisplay-vgscan/ [8]: https://kerneltalks.com/disk-management/lvm-commands-tutorial-lvcreate-lvdisplay-lvremove/ [9]: https://kerneltalks.com/disk-management/extend-file-system-online-lvm/ [10]: https://kerneltalks.com/config/understanding-etcfstab-file/