Linux学习笔记之存储管理

描述

1 存储方式

1.从磁盘的工作原理上分类磁盘
       机械磁盘 HDD
       固态磁盘 SSD

2.从插拔方式上分类磁盘
       热插拔
       非热插拔

3.从硬盘接口上分类磁盘
       IDE-SATA(串行ATA)
       SCSI-SAS(串行SCSI)
       PCIE接口
       FC光纤接口

4.从连接方式上分类
       本地存储
       外部存储
       网络存储

5 从分区方式区分

MBR
磁盘

 

MBR是MSDOS;

兼容windows的MBR(Master boot record);

只能处理小于2TB的磁盘;

用fdisk工具分区;

最多只能有14个分区(4个主分区,扩展分区,逻辑分区);

磁盘的第一扇区,第一扇区有512bytes,存放两类数据:MBR和分区表

MBR: 安装有开机管理程序,占446bytes

分区表: 记录整颗磁盘分区的状态,占64bytes

## 由于分区表只有64bytes,所以只能最多有四组记录区(每个记录占用16bytes),每组记录区记录了该区段的起始和结束扇区号码;
## 所以每块磁盘只能有四个分区槽;
## 这四个分区槽是主分区Primary和扩展分区Extended;

每个分区的前面都有一个启动扇区,用于存放操作系统的启动程序;

扩展分区的前面有一个扩展分区启动记录区占用多个扇区,用于存放里面的所有逻辑分区的起止扇区号码;

扩展分区不能格式化,只能再分成若干个逻辑分区槽;

扩展分区利用多个扇区来记录逻辑分区信息,由于是用多个扇区来记录,所以支持大于4个逻辑分区;


 

磁盘

 

逻辑分区的槽号是从5开始,1-4是保留给主分区和扩展分区的
P1:   /dev/sda1
P2:  /dev/sda2
L1:  /dev/sda5
L2:  /dev/sda6
L3:  /dev/sda7
L4:  /dev/sda8
L5:  /dev/sda9

 

MBR中主分区、 扩展分区、逻辑分区总结

主分区和扩展分区最多有4个;

扩展分区最多只能有1个;

逻辑分区由扩展分区生;

能被格式化后使用的分区为主分区和逻辑分区; 扩展分区不能直接使用;

逻辑分区的数量由操作系统决定。

GPT(GUID partition table)

 

可以处理大于或小于2TB的磁盘;

在CentOS6中用parted工具分区;在CentOS7中用gdisk工具分区;

最多只能有128个分区;没有扩展分区和逻辑分区的概念,都是主分区

GPT将磁盘所有区块以LBA来规划;LBA:Logical Block Address ,预设每个LBA为512bytes,第一个LBA称为LBA0;

GPT使用前面的34个LBA;除此之外还使用了最后的33个LBA做备份;

GPT分区中没有主分区、扩展分区、逻辑分区的概念,每个分区都能使用;

磁盘管理程序中fdisk不识别GPT分区;gdisk和parted可以识别;

grub第一版不识别GPT

 

磁盘

 

LBA0: 与MBR兼容。这个LBA0区块也分两部分,第一部分是和MBR相似的446bytes块区,存储了第一阶段的开机管理程序;第二部分放置了一个特殊标志的分区用来表示此块磁盘为GPT分区格式磁盘,不能识别GPT分区表的磁盘管理程序是不能修改此分区信息的
LBA1: 记录GPT分区表的表头数据,内容为:分区表本身的位置和大小;备份GPT(最后34个LBA区块)放置的位置;放置了分区表检验机制码CRC32,操作系统根据这个码来判断GPT是否正确,如果错误,从备份GPT恢复。
LBA2-33: 实际记录分区信息的地方,每个LBA可以记录4个分区槽信息,所以一共可以有128个分区槽

 

2 基本分区

7.2.1 添加新磁盘

“ lsblk ”——查看系统的分区情况

 

[root@localhost boot]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   26G  0 lvm  /
  └─centos-swap 253:1    0    3G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0    8G  0 part 
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64

 

7.2.2 MBR分区

fdisk -l "——查看系统所挂硬盘个数及分区情况

 

[root@localhost boot]# fdisk -l /dev/sda

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a533f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

 

采用MBR分区表,使用fdisk对sdc进行分盘

 

[root@localhost boot]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):

 

输入“ m ”参数查看帮助信息,了解每个参数的具体作用、分区具体操作等

输入“ n ”参数尝试创建新的分区

 

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended

 

输入“ P ” 参数,系统默认选择主分区,直接按回车键即可;

输入“ l ”参数,系统创建逻辑分区;

 

Select (default p): 
Using default response p

 

分区编号为2~4,系统默认为2,按回车键即可;(分区编号视个人情况而定)

 

分区号 (2-4,默认 2):

 

系统会提示扇区的起始位置,系统会自动选择最靠前的空间扇区位置,直接按回车即可

 

起始 扇区 (16779264-41943039,默认为 16779264):
将使用默认值 16779264

 

用户通过添加扇区或添加尺寸的方式定义扇区的终止位置,也就是定义最终分区空间的大小

 

Last 扇区, +扇区 or +size{K,M,G} (16779264-41943039,默认为 41943039):+100M
分区 2 已设置为 Linux 类型,大小设为 100 MiB

 

输入“ P ”参数,查看硬盘中的分区情况

 

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x43c3e080

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    16779263     8388608   83  Linux
/dev/sdb2        16779264    16984063      102400   83  Linux  

 

输入“ w ”参数,保存所有分区设置

 

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

 

利用ll命令查看新分区的设备文件

 

[root@localhost boot]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 11月 26 21:01 /dev/sdb
brw-rw----. 1 root disk 8, 17 11月 26 21:01 /dev/sdb1
brw-rw----. 1 root disk 8, 18 11月 26 21:01 /dev/sdb2

 

7.2.3 GPT分区

“ gdisk ”——对硬盘进行分区,系统显示创建新的GPT分区

 

root@localhost boot]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

 

输入“ ? ”参数可以查看帮助信息,输入“ n ”参数进行分区,此时没有分区选择,直接按回车键创建主分区,起始扇区使用默认值,按回车键定义终止扇区。设置为添加100MiB,系统提示当前类型是linux系统,直接回车键即可。

 

Command (? for help): n
Partition number (3-128, default 3): 
First sector (34-41943006, default = 16984064) or {+-}size{KMGTP}: 
Last sector (16984064-41943006, default = 41943006) or {+-}size{KMGTP}: +100M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

 

再创建一个分区

 

Command (? for help): n
Partition number (4-128, default 4): 
First sector (34-41943006, default = 17188864) or {+-}size{KMGTP}: 
Last sector (17188864-41943006, default = 41943006) or {+-}size{KMGTP}: +5G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

 

输入“ p ”参数显示分区信息,输入“ w ”保存,系统会提示即将写入GPT数据,这将覆盖已存在的分区,询问是否继续,输入“ y ”即可

 

Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): DA12D06C-8701-4074-9A0B-0FE8E70FD2D8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 14270397 sectors (6.8 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        16779263   8.0 GiB     8300  Linux filesystem
   2        16779264        16984063   100.0 MiB   8300  Linux filesystem
   3        16984064        17188863   100.0 MiB   8300  Linux filesystem
   4        17188864        27674623   5.0 GiB     8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

 

如果为真实硬盘需执行partprobe命令,查看新分区情况

 

[root@localhost boot]# partprobe /dev/sdb
[root@localhost boot]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   26G  0 lvm  /
  └─centos-swap 253:1    0    3G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
├─sdb1            8:17   0    8G  0 part 
├─sdb2            8:18   0  100M  0 part 
├─sdb3            8:19   0  100M  0 part 
└─sdb4            8:20   0    5G  0 part 
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64

 

查看sdb硬盘和sda硬盘的分区表类型

 

[root@localhost boot]# fdisk -l /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: DA12D06C-8701-4074-9A0B-0FE8E70FD2D8


#         Start          End    Size  Type            Name
 1         2048     16779263      8G  Linux filesyste Linux filesystem
 2     16779264     16984063    100M  Linux filesyste Linux filesystem
 3     16984064     17188863    100M  Linux filesyste Linux filesystem
 4     17188864     27674623      5G  Linux filesyste Linux filesystem
[root@localhost boot]# fdisk -l /dev/sda

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a533f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

 

2.4 创建文件系统

       创建分区后并不能立即存放数据,需要对分区进行格式化

“ mkfs ”——再连续按两次tab键可以查看所有文件系统类型,centos 7文件系统默认为XFS

 

[root@localhost boot]# mkfs
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat    

 

使用EXT4文件系统格式化/dev/sdb1主分区,块大小为1024字节。块是文件存储的最小单位,若文件小于1KiB,也会占用1KiB的存储空间

 

[root@localhost boot]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2097152 blocks
104857 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2147483648
64 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, 1605632

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

 

使用XFS文件系统格式化/dev/sdb2主分区

 

[root@localhost boot]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2              isize=512    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

 

2.5 挂载分区

       格式化完成后需挂载分区,首先创建两个目录作为挂载点,然后使用mount命令临时把sdb1和sdb2分区分别挂载到date01与date02目录上。现在两个目录不再是两个普通的目录,而是设备的挂载点,用户要往设备中存放数据,需借助挂载点

 

[root@localhost ~]# mkdir /date01
[root@localhost ~]# mkdir /date02
[root@localhost ~]# mount /dev/sdb1 /date01
[root@localhost ~]# mount /dev/sdb2 /date02

 

“ df -h ”——查看文件系统的挂载点

 

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   26G  6.6G   20G   26% /
/dev/sda1               1014M  185M  830M   19% /boot
tmpfs                    378M   32K  378M    1% /run/user/0
/dev/sr0                 4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
tmpfs                    378M   36K  378M    1% /run/user/1000
/dev/sdb1                7.8G   36M  7.3G    1% /date01
/dev/sdb2                 97M  5.3M   92M    6% /date02

 

挂载完成后,分别在这两个目录下创建两个空目录dir01与dir02,然后使用ll命令查看date01与date02目录,同样大小的空目录所占的存储空间是不同的

 

[root@localhost ~]# mkdir /date01/dir01
[root@localhost ~]# mkdir /date02/dir02
[root@localhost ~]# ll /date01
总用量 20
drwxr-xr-x. 2 root root  4096 11月 26 21:28 dir01
drwx------. 2 root root 16384 11月 26 21:19 lost+found
[root@localhost ~]# ll /date02
总用量 0
drwxr-xr-x. 2 root root 6 11月 26 21:28 dir02

 

使用mount命令挂载是临时性的,系统重新启动后便失效,需要再次挂载,用户可以修改/etc/fstab配置文件,使其永久有效。

“ blkid ”——查看设备的UUID

 

[root@localhost ~]# blkid
/dev/sdb1: UUID="67e9447b-a6dd-47d2-a738-55983bc3c915" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="fbc32bc2-b7da-4912-a191-920413125325" 
/dev/sdb2: UUID="570e001f-162e-4ecd-8873-6d2c82c0edfb" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="1254b3e7-55be-40ca-b198-0b57f29dbf6a" 
/dev/sdb3: PARTLABEL="Linux filesystem" PARTUUID="b5eaddb3-5935-4d8b-b755-2d4f47599a7a" 
/dev/sdb4: PARTLABEL="Linux filesystem" PARTUUID="ed1ede26-7603-4f30-b52a-8247f0f49f6a" 
/dev/sda1: UUID="f4b88752-547e-4442-bfbc-2ec46b75510c" TYPE="xfs" 
/dev/sda2: UUID="8yl9fP-Nj4t-OTt8-P2Q2-B3p8-1nrp-PUKcfd" TYPE="LVM2_member" 
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="cf8c0d8c-19ca-496c-8ff6-6f8fc7a88517" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="93521d4e-9ae4-4c93-8909-e46441105623" TYPE="swap"

 

在/etc/fstab 配置文件中写入设备的UUID,其中sdc1分区的挂载点为data03,文件系统类型为xfs,挂载选项为defaults,最后两个数字为0,表示不备份、不检测;sdc5分区的挂载点为data04,文件系统类型为auto(自动),挂载选项为ro(只读),最后两个数字为0,表示不备份、不检测。

 

#
# /etc/fstab
# Created by anaconda on Sun Sep 10 1415 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=f4b88752-547e-4442-bfbc-2ec46b75510c /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID="67e9447b-a6dd-47d2-a738-5598bc3c915" /date01 xfs defaults         0 0
UUID="570e001f-162e-4ecd-8873-6d2c82c0edfb" /date02 auto ro             0 0

 

       重新启动系统就可以读取新挂载的设备,也可使用“mount-a”命令读取/etc/fstab 文件并挂载设备。使用df命令查看已挂载设备信息,添加“T”参数可显示设备文件的类型,添加“h”参数可显示设备大小。

 

[root@localhost ~]# mount -a
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        26G  6.6G   20G   26% /
/dev/sda1               xfs      1014M  185M  830M   19% /boot
tmpfs                   tmpfs     378M   32K  378M    1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
tmpfs                   tmpfs     378M   36K  378M    1% /run/user/1000
/dev/sdb1               ext4      7.8G   36M  7.3G    1% /date01
/dev/sdb2               xfs        97M  5.3M   92M    6% /date02

 

       在完成硬盘的分区、挂载与格式化之后,可尝试通过挂载点存储数据:同时向data03与data04目录复制/etc/hosts文件。data03目录可以写入,data04提示无法创建常规文件。具体如下所示。

 

[root@localhost ~]# cp -rf /etc/host /date01
[root@localhost ~]# cp -rf /etc/host /date02
cp: 无法获取"/etc/host" 的文件状态(stat): 没有那个文件或目录

 

“ mount ”——显示设备的权限

 

/dev/sdb1 on /date01 type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sdb2 on /date02 type xfs (ro,relatime,seclabel,attr2,inode64,noquota)

 

3 本章小结

       本章主要介绍了存储的方式(硬盘的参数及性能)与基本分区(MBR与GPT)。通过本章的学习,让我掌握了创建基本分区,创建文件系统及挂载的方法。

链接:https://www.cnblogs.com/twlwbiubiu/p/17858056.html

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分