Linux存储管理磁盘分区逻辑分区

简介: 上一篇文章留了一点尾巴,如上篇文章介绍,MBR只能分四个主分区,如果需要更多的分区,需要放弃其中一个主分区,将其划分为扩展分区,再将扩展分区划分为逻辑分区来使用。

前言


 上一篇文章留了一点尾巴,如上篇文章介绍,MBR只能分四个主分区,如果需要更多的分区,需要放弃其中一个主分区,将其划分为扩展分区,再将扩展分区划分为逻辑分区来使用。


一、逻辑分区


1、简介


   当我们需要更多的分区的时候,需要放弃其中一个主分区,一般是创建三个主分区以后,将第四个分区划分为扩展分区,载将扩展分区划分为若干个逻辑分区来使用。


2、演示创建四个主分区后的效果


1)创建四个分区(具体步骤见上一篇文章)

//进入分区工具
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (5015552-10485759,默认为 5015552):
将使用默认值 5015552
Last 扇区, +扇区 or +size{K,M,G} (5015552-10485759,默认为 10485759):
将使用默认值 10485759
分区 4 已设置为 Linux 类型,大小设为 2.6 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。


2)尝试创建第五个分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
//创建第五个分区提示需要放弃一个主分区创建一个扩展分区
命令(输入 m 获取帮助):n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.
命令(输入 m 获取帮助):p    //展示分区表
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6928af85
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     4605951      204800   83  Linux
/dev/sdb3         4605952     5015551      204800   83  Linux
/dev/sdb4         5015552    10485759     2735104   83  Linux
命令(输入 m 获取帮助):


3)删除第四个主分区,将其分为扩展分区

命令(输入 m 获取帮助):d        //输入d删除分区
分区号 (1-4,默认 4):4        //选择删除4号分区
分区 4 已删除
命令(输入 m 获取帮助):n        //现在可以创建分区了
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e                //选择创建扩展分区
已选择分区 4                            //自动选择最后4号分区
起始 扇区 (5015552-10485759,默认为 5015552):    
将使用默认值 5015552
//直接回车表示将剩余所有空间分给扩展分区
Last 扇区, +扇区 or +size{K,M,G} (5015552-10485759,默认为 10485759): 
将使用默认值 10485759    
分区 4 已设置为 Extended 类型,大小设为 2.6 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6928af85
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     4605951      204800   83  Linux
/dev/sdb3         4605952     5015551      204800   83  Linux
/dev/sdb4         5015552    10485759     2735104    5  Extended
命令(输入 m 获取帮助):


在分区表可看到sdb4的类型是extended(扩展分区),扩展分区是不能存放数据的,要想使用,需要将其划分若干逻辑分区,这个逻辑分区没有数量限制。


4)创建逻辑分区

命令(输入 m 获取帮助):n            //创建分区
All primary partitions are in use
添加逻辑分区 5                            //默认直接创建5号逻辑分区
起始 扇区 (5017600-10485759,默认为 5017600):
将使用默认值 5017600
Last 扇区, +扇区 or +size{K,M,G} (5017600-10485759,默认为 10485759):+200M  //大小设置200M
分区 5 已设置为 Linux 类型,大小设为 200 MiB
命令(输入 m 获取帮助):p            //查看分区表
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6928af85
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     4605951      204800   83  Linux
/dev/sdb3         4605952     5015551      204800   83  Linux
/dev/sdb4         5015552    10485759     2735104    5  Extended
/dev/sdb5         5017600     5427199      204800   83  Linux         //逻辑分区创建成功
命令(输入 m 获取帮助):n                //继续创建分区
All primary partitions are in use
添加逻辑分区 6                            //默认添加逻辑分区
起始 扇区 (5429248-10485759,默认为 5429248):
将使用默认值 5429248
Last 扇区, +扇区 or +size{K,M,G} (5429248-10485759,默认为 10485759)://将剩余空间全分配给6号逻辑分区
将使用默认值 10485759
分区 6 已设置为 Linux 类型,大小设为 2.4 GiB
命令(输入 m 获取帮助):p            //查看分区表
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6928af85
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     4605951      204800   83  Linux
/dev/sdb3         4605952     5015551      204800   83  Linux
/dev/sdb4         5015552    10485759     2735104    5  Extended
/dev/sdb5         5017600     5427199      204800   83  Linux
/dev/sdb6         5429248    10485759     2528256   83  Linux
命令(输入 m 获取帮助):w        //保存分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@localhost ~]# 


3、刷新分区表、格式化、进行挂载


这里讲的都是临时挂载,重启计算机将没有挂载信息,只是为了方便学习了解磁盘,永久挂载需要将挂载命令卸载写在etc/fstab里,以后会讲。


和上篇文章操作一样对分区表刷新、格式化,创建待挂载文件夹,将分区挂载到指定的文件夹。

注意:扩展分区不能够挂载,只能将其划分的逻辑分区进行挂载。


//1、刷新分区表
//直接查看分区表,发现刚刚创建的分区没有显示出来。
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0 1000M  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    2G  0 part 
├─sdb2            8:18   0  200M  0 part /mnt/disk2
└─sdb3            8:19   0  200M  0 part /mnt/fisk3
sdc               8:32   0    5G  0 disk 
sdd               8:48   0    5G  0 disk 
sde               8:64   0    5G  0 disk 
sdf               8:80   0    5G  0 disk 
sdg               8:96   0    5G  0 disk 
sdh               8:112  0    5G  0 disk 
sdi               8:128  0    5G  0 disk 
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64
//刷新分区表
[root@localhost ~]# partprobe /dev/sdb
//刷新之后查看分区表,发现刚刚创建的所有分区都显示出来了
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0 1000M  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    2G  0 part 
├─sdb2            8:18   0  200M  0 part /mnt/disk2
├─sdb3            8:19   0  200M  0 part /mnt/fisk3
├─sdb4            8:20   0  512B  0 part 
├─sdb5            8:21   0  200M  0 part 
└─sdb6            8:22   0  2.4G  0 part 
sdc               8:32   0    5G  0 disk 
sdd               8:48   0    5G  0 disk 
sde               8:64   0    5G  0 disk 
sdf               8:80   0    5G  0 disk 
sdg               8:96   0    5G  0 disk 
sdh               8:112  0    5G  0 disk 
sdi               8:128  0    5G  0 disk 
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64
//2、格式化
//格式化sbd5和sdb6,用分号隔开直接运行两个命令。
[root@localhost ~]# mkfs.ext4 /dev/sdb5;mkfs.ext4  /dev/sdb6
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
  8193, 24577, 40961, 57345, 73729
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
158080 inodes, 632064 blocks
31603 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=648019968
20 block groups
32768 blocks per group, 32768 fragments per group
7904 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
//3、挂载
//创建disk5和disk6文件夹
[root@localhost ~]# mkdir /mnt/disk5 /mnt/disk6
//将sdb5挂载到disk5,将sdb6挂载到disk6
[root@localhost ~]# mount -t ext4  /dev/sdb5 /mnt/disk5 ;mount -t ext4  /dev/sdb6 /mnt/disk6
//查看挂载信息
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  4.2G   13G   25% /
/dev/sda1               xfs       997M  172M  826M   18% /boot
tmpfs                   tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb2               ext4      190M  1.6M  175M    1% /mnt/disk2
/dev/sdb3               ext4      190M  1.6M  175M    1% /mnt/fisk3
/dev/sdb5               ext4      190M  1.6M  175M    1% /mnt/disk5
/dev/sdb6               ext4      2.4G  7.3M  2.2G    1% /mnt/disk6
//挂载成功


4、卸载(取消分区挂载)


命令:umount   /dev/需要卸载的分区


[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  4.2G   13G   25% /
/dev/sda1               xfs       997M  172M  826M   18% /boot
tmpfs                   tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb2               ext4      190M  1.6M  175M    1% /mnt/disk2
/dev/sdb3               ext4      190M  1.6M  175M    1% /mnt/fisk3
/dev/sdb5               ext4      190M  1.6M  175M    1% /mnt/disk5
/dev/sdb6               ext4      2.4G  7.3M  2.2     1% /mnt/disk6
[root@localhost ~]# umont  /dev/sdb6        //取消sbd6挂载
[root@localhost ~]# df -hT        //查看挂载信息,没有sbd6的挂载信息了
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  470M     0  470M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  8.6M  478M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  4.2G   13G   25% /
/dev/sda1               xfs       997M  172M  826M   18% /boot
tmpfs                   tmpfs      98M   24K   98M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb2               ext4      190M  1.6M  175M    1% /mnt/disk2
/dev/sdb3               ext4      190M  1.6M  175M    1% /mnt/fisk3
/dev/sdb5               ext4      190M  1.6M  175M    1% /mnt/disk5


取消挂载,相当于拔掉U盘,比如我刚刚取消了sdb5在disk5的挂载,这个时候相当于我拔掉了sdb5这个U盘,本来存放在disk5内的文件都会消失,因为那些文件都是存放在sdb5的,我拔掉了这个U盘,自然这些文件就消失了,当重新挂载sdb5,这些文件将会恢复。


总结


  逻辑分区的后续格式化以及挂载是和当时主分区是一样的,唯一不一样的是逻辑分区可以创建若干个,特别注意的是扩展分区是不能够挂载,不能够储存数据的,需要划分逻辑分区来使用,这篇文章主要将逻辑分区的划分。



相关文章
|
3月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
3月前
|
存储 安全 Linux
在Linux中,日志文件通常存储在哪些目录?
在Linux中,日志文件通常存储在哪些目录?
|
3月前
|
存储 网络协议 搜索推荐
在Linux中,如何配置和管理虚拟机的网络和存储?
在Linux中,如何配置和管理虚拟机的网络和存储?
|
3月前
|
存储 Linux 5G
linux操作系统初始化后,再也不用手动分区了
linux操作系统初始化后,再也不用手动分区了
33 0
|
3月前
|
存储 Linux
在Linux中,如何保存当前磁盘分区的分区表?
在Linux中,如何保存当前磁盘分区的分区表?
|
3月前
|
存储 运维 安全
Linux中,如何配置iSCSI存储?
Linux中,如何配置iSCSI存储?
|
3月前
|
存储 安全 Linux
在Linux中,如何格式化一个磁盘分区?
在Linux中,如何格式化一个磁盘分区?
|
3月前
|
Linux
在Linux中,如何创建一个分区?
在Linux中,如何创建一个分区?
|
3月前
|
Linux 开发工具
在Linux中,如何创建一个新的分区并格式化为EXT4文件系统?
在Linux中,如何创建一个新的分区并格式化为EXT4文件系统?
|
存储 Linux 调度
Linux 存储管理3——地址映射全过程
假定一条程序已经运行,整个映射机制都已建立好,并且cpu正在执行main()中的:call 08048368 这条指令,要转移到虚拟地址0x08048368去。接下来我们分析整个地址映射的过程: 首先是段式映射阶段。
918 0