文章目录
一 添加硬盘,创建Linux分区
1.首先准备一块新的硬盘
打开虚拟机(此时系统是关机状态),“编辑虚拟机”----选择“硬盘”----“添加”
选择硬盘,然后下一步
一路默认推荐选项,然后将硬盘大小设置为10G
选择好保存路径,然后就创建成功了。
2.检查系统是否识别了硬盘
使用命令lsblk
查看新的硬盘是否添加成功。
[root@canway01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 508M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos_canway01-root 253:0 0 18G 0 lvm /
└─centos_canway01-swap 253:1 0 1.5G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 4.4G 0 rom
此处可以看到,sdb
对应的 10G 大小,就是我们刚刚添加的硬盘。
此外,也可以直接查看设备文件。
[root@canway01 ~]# ll /dev/sdb
brw-rw---- 1 root disk 8, 16 Nov 19 18:52 /dev/sdb
3.对磁盘进行分区
对于 2TiB 以下的硬盘,笔者使用fdisk
命令,采用MBR分区方案在磁盘上添加、修改和删除分区。
3-1 创建MBR磁盘分区
fdisk
后面以要分区的设备文件作为参数,进入交互式界面
[root@canway01 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
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
Building a new DOS disklabel with disk identifier 0xceafdf4b.
输入字母n
,创建新的分区
输入字母p
,创建主分区(默认)
直接回车键,默认选择创建分区1
再次回车键,默认从上一次的块继续创建分区
输入+1G
,表示创建分区大小为1G
。
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G
Partition 1 of type Linux and of size 1 GiB is set
然后输入数字p
,就可以查看当前磁盘的分区信息
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0xceafdf4b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
根据信息,我们可以发现,/dev/sdb
这块10G的硬盘上创建了/dev/sdb1
这个分区,该分区大小为1G
,属于Linux
类型的系统分区,有区块起始位置和最终位置。
接着,输入字母w
,将修改的内容写入磁盘分区表,并退出 fdisk 程序,完成分区创建请求。
(如果操作错误,不想保存分区请求的内容,则输入字母q
,直接退出,且不保存内容)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
最后,使用partprobe 设备文件名称
命令,启动内核重新读取磁盘分区表。
[root@canway01 ~]# partprobe /dev/sdb
3-2 创建文件系统
在创建块设备后,还需要在块设备上创建文件系统,才能存储和检索数据。
[root@canway01 scripts]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
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
或者使用命令mkfs.xfs /dev/sdb1
也是一样的效果
3-3 挂载文件系统
首先要有一个挂载点(挂载目录),即先创建一个空目录。
[root@canway01 scripts]# mkdir -p /data/sdb1
然后手动(临时性)挂载
[root@canway01 scripts]# mount /dev/sdb1 /data/sdb1
[root@canway01 scripts]# mount|tail -1
/dev/sdb1 on /data/sdb1 type xfs (rw,relatime,attr2,inode64,noquota)
# 如果不确定,可以再验证一下是否挂载正确;无报错,说明挂载成功
[root@canway01 scripts]# mount -a
然后检查一下,此时挂载的设备和目录信息,可以看到挂载是成功的
[root@canway01 scripts]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 470M 0 470M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.1M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos_canway01-root 18G 5.2G 13G 29% /
/dev/sda1 505M 165M 340M 33% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 1014M 33M 982M 4% /data/sdb1
但这个手动挂载只是暂时的,在下一次重启后,挂载好的内容会消失,因此我们需要将其写入/etc/fstab
文件中,进行永久挂载。
[root@canway01 scripts]# tail -1 /etc/fstab
/dev/sdb1 /data/sdb1 xfs defaults 0 0
第一列是挂载的设备文件名,也可以写成UUID="xxx"
的形式。如果要查找该设备的UUID,可以使用命令
[root@canway01 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="170a4b3d-b684-47f1-b60b-cb18477fb735" TYPE="xfs"
相比之下,使用UUID
更可靠,因为块设备的标识符在特定情况下可能会发生变化,例如云提供商修改虚拟机的基础存储层。但UUID
在设备的超级块中保持不变。
第二列是挂载点。
第三列是文件系统类型。
后三列一般都是defaults 0 0
到此为止,我们就成功添加一块硬盘并对其分区,可以进行数据的添加、修改、删除和检索了。
二 创建交换空间
2-1 创建分区
与3
的操作一模一样,创建一个新的分区
2-2 设置分区类型
输入字母t
,设置分区类型
输入数字2
,选择第二个分区
输入编码82
,表示设置linux的交换分区
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
然后检查一遍设置是否正确
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0xceafdf4b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 82 Linux swap / Solaris
然后输入w
保存信息并退出
最后输入partprobe /dev/sdb
加载内核读取磁盘分区表。
2-3 格式化交换空间
向设备应用交换签名
[root@canway01 ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=0e6f832a-4090-43b6-8617-8e1aef6f58c3
2-4 激活交换空间
此时并没有启用新创建的交换空间,需要进一步激活才可以。
[root@canway01 ~]# free -h
total used free shared buff/cache available
Mem: 972M 188M 588M 8.0M 195M 638M
Swap: 1.5G 0B 1.5G
[root@canway01 ~]# swapon /dev/sdb2
[root@canway01 ~]# free -h
total used free shared buff/cache available
Mem: 972M 189M 587M 8.0M 195M 638M
Swap: 2.5G 0B 2.5G
(如果要禁用该交换空间,使用命令swapoff /dev/sdb2
)
并在/etc/fstab
文件中使用UUID挂载
[root@canway01 ~]# tail -1 /etc/fstab
UUID=0e6f832a-4090-43b6-8617-8e1aef6f58c3 swap swap defaults 0 0
最后验证新的交换空间是否已经启用
[root@canway01 ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 1572860 0 -2
/dev/sdb2 partition 1048572 0 -3
三 删除磁盘的分区
3-1 备份数据
防止在对磁盘的错误操作而导致数据丢失,应该先对磁盘中的数据做好备份或迁移。
3-2 取消挂载
在取消挂载后,应检查一下磁盘挂载信息,进行确认。
umount /data/sdb1
df -h
如果在/etc/fstab
中设置的永久挂载,还应删除或注释其挂载信息。
3-3 对磁盘分区进行删除操作
输入字母d
,表示删除分区
[root@canway01 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Selected partition 1
Partition 1 is deleted
然后输入字母w
,保存修改的请求
退出 fdisk 后,启动内核重新读取磁盘分区表,使其生效。
partprobe /dev/sdb