Top
NSD ENGINEER DAY02
- 案例1:硬盘分区及格式化
- 分区扩展Swap空间
- 文件扩展Swap空间
1 案例1:硬盘分区及格式化
1.1 问题
本例要求熟悉硬盘分区结构,使用fdisk分区工具在磁盘 /dev/sdb 上按以下要求建立分区:
- 采用默认的 msdos 分区模式
- 第1个分区 /dev/sdb1 的大小为 200MiB
- 第2个分区 /dev/sdb2 的大小为 2000MiB
- 第3个分区 /dev/sdb3 的大小为 1000MiB
完成分区后,能够配置开机自动挂载 /dev/sdb2 分区:
- 文件系统类型为 EXT4
- 将其挂载到 /mnt/part2 目录
1.2 方案
fdisk分区工具用来建立msdos分区方案,其交互模式中的主要指令如下:
- m:列出指令帮助
- p:查看当前的分区表信息
- n:新建分区
- d:删除分区
- q:放弃分区更改并退出
- w:保存对分区表所做的更改
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:新建分区表
1)打开fdisk工具,操作磁盘/dev/sdb
[root@server0 ~]# 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 0x9ac1bc10.
Command (m for help): //交互操作提示信息
2)新建第1个分区/dev/sdb1
Command (m for help): n //新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p //类型为p(主分区)
Partition number (1-4, default 1): 1 //分区编号1
First sector (2048-20971519, default 2048): //起始位置默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M
Partition 1 of type Linux and of size 200 MiB is set //结束位置+200MiB大小
Command (m for help): p //确认当前分区表
… …
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 83 Linux
3)新建第2个分区/dev/sdb2
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p //类型为p(主分区)
Partition number (2-4, default 2): 2 //分区编号2
First sector (411648-20971519, default 411648): //起始位置默认
Using default value 411648
Last sector, +sectors or +size{K,M,G} (411648-20971519, default 20971519): +2000M
Partition 2 of type Linux and of size 2 GiB is set //结束位置+2000MiB大小
Command (m for help): p //确认当前分区表
… …
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 83 Linux
/dev/sdb2 411648 4507647 2048000 83 Linux
4)新建第3个分区/dev/sdb3
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (4507648-20971519, default 4507648):
Using default value 4507648
Last sector, +sectors or +size{K,M,G} (4507648-20971519, default 20971519): +1000M
Partition 3 of type Linux and of size 1000 MiB is set
Command (m for help): p //确认当前分区表
… …
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 83 Linux
/dev/sdb2 411648 4507647 2048000 83 Linux
/dev/sdb3 4507648 6555647 1024000 83 Linux
5)保存分区更改,退出fdisk分区工具
Command (m for help): w //保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
6)刷新分区表
[root@server0 ~]# partprobe /dev/vdb //重新检测磁盘分区
//或者
[root@server0 ~]# reboot //对已使用中磁盘的分区调整,应该重启一次
… …
步骤二:格式化及挂载分区
1)将分区/dev/sdb2格式化为EXT4文件系统
[root@server0 ~]# mkfs.ext4 /dev/sdb2
… …
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
2)配置开机自动挂载
[root@server0 ~]# vim /etc/fstab
… …
/dev/sdb2 /mnt/part2 ext4 defaults 0 0
3)创建挂载点,并验证挂载配置
[root@server0 ~]# mkdir /mnt/part2 //创建挂载点
[root@server0 ~]# mount -a //挂载fstab中的可用设备
[root@server0 ~]# df -hT /mnt/part2/ //检查文档所在的文件系统及设备
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb2 ext4 1.9G 5.9M 1.8G 1% /mnt/part2
2 分区扩展Swap空间
2.1 问题
- 从磁盘sdd上划分一个2G的分区sdd1
- 将/dev/sdd1格式化为Swap文件系统
- 启用/dev/sdd1分区,查看Swap空间大小
- 停用/dev/sdd1分区,查看Swap空间大小
2.2 方案
首先要明白Swap分区空间是来源于硬盘,而要想扩充Swap空间的大小,思路很简单就是把硬盘的分区格式成Swap文件系统,再扩充到Swap空间中区。
对于Swap分区有它独立的格式化命令和扩充命令,这里要和普通分区的格式化命令和挂载命令区分开。此外它还有独立查看Swap空间组成的命令。
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:从磁盘sdd上划分一个2G的分区sdd1
命令操作如下所示:
[root@localhost ~]# fdisk /dev/sdd 欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x6faf1c3f 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #回车
Using default response p
分区号 (1-4,默认 1): #回车
起始 扇区 (2048-41943039,默认为 2048): #回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6faf1c3f
设备 Boot Start End Blocks Id System
/dev/sdd1 2048 4196351 2097152 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#
步骤二:将/dev/sdd1格式化为swap文件系统
命令操作如下所示:
[root@localhost ~]# mkswap /dev/sdd1 //格式化为swap文件系统
Setting up swapspace version 1, size = 1951740 KiB
no label, UUID=848ca15c-a03e-4e0b-9ac0-bfd6507d0b7e
步骤三:启用/dev/sdd1分区,查看swap空间大小
命令操作如下所示:
[root@localhost ~]# swapon –s //未启用之前,查看swap空间组成成员
Filename Type Size Used Priority
/dev/sda5 partition 8388600 0 -1
[root@localhost ~]# swapon /dev/sdd1 //启用/dev/sdd1交换分区
[root@localhost ~]# swapon –s //启用之后,查看swap空间组成成员
Filename Type Size Used Priority
/dev/sda5 partition 8388600 0 -1
/dev/sdd1 partition 1951736 0 -2
[root@localhost ~]#
步骤四:停用/dev/sda8分区,查看swap空间大小
命令操作如下所示:
[root@localhost ~]# swapoff /dev/sdd1 //停用/dev/sdd1交换分区
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 8388600 0 -1
[root@localhost ~]#
3 文件扩展Swap空间
3.1 问题
- 使用dd命令创建一个大小为2048MB的交换文件,放在/opt/swap.db
- 将swap.db文件格式化成Swap文件系统
- 启用swap.db文件,查看Swap空间大小
- 停用swap.db文件,查看Swap空间大小
3.2 方案
Swap空间来源于硬盘空间,这个思路不变。我们可以换种方式,来扩展Swap空间。就是可以创建一个大的文件,文件占用的是磁盘空间,再将这个文件格式化使用。这个方式是可行的,但难点在于文件怎么生成呢?我们可以用dd这条命令。
例如 dd if=/dev/zero of=/opt/swap.db bs=1M count=2048 ,相关说明如下:
- dd:为命令字。
- if:读取数据的来源是哪,而/dev/zero是一个特殊的设备它可以产生无限的数据,常用来与dd命令搭配使用。
- of:将数据写入到哪里去,可以是其他设备,也可以是指定路径下的一个文件名。
- bs:每次读取和写入数据的大小为1M。
- count:为读取和写入的次数为2048次。
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:使用dd命令创建一个大小为2048MB的交换文件,放在/opt/swap.db
命令操作如下所示:
[root@localhost ~]# dd if=/dev/zero of=/opt/swap.db bs=1M count=2048 记录了2048+0 的读入 记录了2048+0 的写出 2147483648字节(2.1 GB)已复制,95.5419 秒,22.5 MB/秒 [root@localhost ~]# ls -lh /opt/swap.db -rw-r--r--. 1 root root 2.0G 2月 27 21:24 /opt/swap.db
步骤二:将swap.db文件格式化成Swap文件系统
命令操作如下所示:
[root@localhost ~]# mkswap /opt/swap.db //将文件格式化为Swap文件系统 mkswap: /opt/swap.db: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 2097148 KiB no label, UUID=4dc743fd-86a6-477b-a3fc-a811f41dbd43 [root@localhost ~]#
步骤三:启用swap.db文件,查看Swap空间大小
命令操作如下所示:
[root@localhost ~]# swapon /opt/swap.db //启用swap.db文件 [root@localhost ~]# swapon -s Filename Type Size Used Priority /dev/sda5 partition 8388600 0 -1 /opt/swap.db file 2097144 0 -2 [root@localhost ~]#
步骤四:停用swap.db文件,查看Swap空间大小
命令操作如下所示:
[root@localhost ~]# swapoff /opt/swap.db //停用swap.db文件 [root@localhost ~]# swapon -s Filename Type Size Used Priority /dev/sda5 partition 8388600 0 -1 [root@localhost ~]#