前一天的介绍中,我们知道了操作系统的文件系统目录结构。那么当我们需要增加存储空间的时候,我们需要怎么办呢,类比于其他操作系统,当然是添加新的硬盘了。我们今天先来看看如何给 linux 系统添加一块新的盘来使用。
以虚拟机为例,首先我们需要先使用虚拟机管理软件为虚拟机添加一块新的虚拟硬盘(模拟新安装一块硬盘到主机上)。
当前我使用的虚拟机,只有一块硬盘:
~$
~$ blkid
/dev/sda5: UUID="79dabde4-ff53-4470-8cf1-976fb0a9d26a" TYPE="ext4" PARTUUID="bc71b6ee-05"
~$
以 WMware Workstation为例步骤为:
点击 “虚拟机” ——> "设置" ——>打开以下窗口
然后选择 “硬盘” 之后单击添加。
单击下一步:
默认选择 scsi 类型磁盘
创建新磁盘
设置磁盘大小,并将磁盘拆分为多个文件。
单击完成:
磁盘已经添加到主机上:
~$
~$ lsblk | grep sd
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 19.5G 0 part /
sdb 8:16 0 10G 0 disk
~$
分区
Linux 系统中的一切都是文件, 我们创建主机的时候添加的硬盘,在系统中被识别为 /dev/目录下的文件 sda,新添加硬盘后,在目录下添加了一个新的文件 sdb 。
fdisk命令用于新建、修改及删除磁盘的分区表信息,英文全称为“format disk”,语法格式为“fdisk磁盘名称”。
它提供了添加、删除、转换分区等功能。不过与前面讲解的直接写到命令后面的参数不同,在执行这条命令的时候,需要输入对应的参数。
其参数如下:
参数 | 作用 |
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
我们开始对硬盘进行分区:
~$ sudo fdisk /dev/sdb
[sudo] password for afei:
fdisk 需要具有 root 权限才可以执行
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x65cbb2e4.
Command (m for help): n
输入 n 表示新建一个分区
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
设置该分区为主分区
Partition number (1-4, default 1):
直接敲回车,使用默认的分区号为 1
First sector (2048-20971519, default 2048):
开始块编号,这里使用默认的 2048 ,根据文件系统知识,需要留 2048 个块空间用于存索引信息
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): +1024M
输入 “+1024M” 表示从当前硬盘分 1024M 给当前分区
Created a new partition 1 of type 'Linux' and of size 1 GiB.
Command (m for help): w
输入 w 保存并退出
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
分区完成后,建议先执行一下 partprobe 命令将分区信息同步到内核, 这样可以保证分区信息成功同步给系统内核。以使用 lsblk 查看一下分区信息,可以看到 sdb 硬盘的下面多了一个sdb1 的分区。
~$
~$ lsblk | grep sd
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 19.5G 0 part /
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 1G 0 part
~$
格式化
分区完成后,需要对分区进行格式化。需要用到 mkfs 命令,输入 mkfs 之后,敲两下 tab 可以看到 mkfs 可以创建的文件系统类型。
~$ mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
mkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs
这里我们将分区设置为 xfs 类型的文件系统。
~$
~$ sudo mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
~$