磁盘与文件系统管理-1

磁盘基础结构

基础结构

1.物理结构
盘片:硬盘有多个盘片,每个盘片两面。(Platter)

磁头:每面一个磁头。(Head)

2.数据结构

磁道:磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track)。

扇区:每个磁道被等分为福哦干个弧段,这些弧段便是扇区(Sector)。扇区是磁盘的最小组成单元,通常是512字节,由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节。

柱面:在多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面(Cylinder)。

3.存储容量
硬盘存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数。

4.磁盘读取响应时间
寻道时间:磁头从开始移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms,一般都在10ms左右。

旋转延迟:盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间,旋转延迟取决于磁盘转速。普通硬盘一般都是7200rpm,慢的5400rpm。

数据传输时间:完成传输所请求的数据所需要的时间。

5.扇区、块/簇、page
扇区:硬盘的最小读写单元

块/簇:是操作系统针对硬盘读写的最小单元

page:是内存与操作系统之间操作的最小单元。

扇区 <= 块/簇 <= page

6.硬盘接口
ATA(IDE):并口,抗干扰性太差,排线占用空间大,逐渐被SATA取代。

SATA:抗干扰性强,支持热拔插,速度快,纠错能力强。

SCSI:广为工作站级个人电脑以及服务器使用,资料传输时CPU占用率较低,转速快,支持热拔插。

SAS:新一代的SCSI技术,与SATA相同,都是采取序列式技术以获得更高的传输速度,可达6Gb/s。

MBR

MBR是主引导记录(Master Boot Record),位于硬盘第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表。分区表中有4个分区记录区,每个分区记录区占16个字节。

磁盘分区

分区表示

IDE接口的设备表示为hdX形式,SCSI接口的设备表示为sdX形式。

X可以为a、b、c等,如第一个IDE设备表示为hda,第二个SCSI设备表示为sdb。

主分区和扩展分区序号为1~4,逻辑分区从5开始,扩展分区里分逻辑分区。如hda2,sdb5。扩展分区不可存数据,扩展分区中的逻辑分区可以存数据。

fdisk -l [磁盘设备]

[root@gh1 ~]# fdisk -l

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648    25593855    12591104   8e  Linux LVM

fdisk 交互模式
m:帮助
p:显示分区列表print
n:创建新分区new
d:删除分区delete
t:转化分区类型type,通过ID号。82swap、83ext4或xfs、bfat32。
l:列出所有分区类型
w:保存修改write
q:退出quit

磁盘分区实验

进入磁盘m显示帮助

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

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

Device does not contain a recognized partition table
使用磁盘标识符 0xc2ed1850 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition(删除分区delete)
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types(列出所有分区类型)
   m   print this menu
   n   add a new partition(创建新分区new)
   o   create a new empty DOS partition table
   p   print the partition table(显示分区列表print)
   q   quit without saving changes(退出)
   s   create a new empty Sun disklabel
   t   change a partition's system id(转化分区类型type,通过ID号。82swap、83ext4或xfs、bfat32。)
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit(保存)
   x   extra functionality (experts only)

创建3个主分区2G、2G、3G

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (8390656-20971519,默认为 8390656):
将使用默认值 8390656
Last 扇区, +扇区 or +size{K,M,G} (8390656-20971519,默认为 20971519):+3G
分区 3 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):p

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    14682111     3145728   83  Linux

剩下空间创建扩展分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e
已选择分区 4
起始 扇区 (14682112-20971519,默认为 14682112):
将使用默认值 14682112
Last 扇区, +扇区 or +size{K,M,G} (14682112-20971519,默认为 20971519):
将使用默认值 20971519
分区 4 已设置为 Extended 类型,大小设为 3 GiB

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    14682111     3145728   83  Linux
/dev/sdb4        14682112    20971519     3144704    5  Extended

分两个逻辑分区1G、2G

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (14684160-20971519,默认为 14684160):
将使用默认值 14684160
Last 扇区, +扇区 or +size{K,M,G} (14684160-20971519,默认为 20971519):+1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (16783360-20971519,默认为 16783360):
将使用默认值 16783360
Last 扇区, +扇区 or +size{K,M,G} (16783360-20971519,默认为 20971519):
将使用默认值 20971519
分区 6 已设置为 Linux 类型,大小设为 2 GiB

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    14682111     3145728   83  Linux
/dev/sdb4        14682112    20971519     3144704    5  Extended
/dev/sdb5        14684160    16781311     1048576   83  Linux
/dev/sdb6        16783360    20971519     2094080   83  Linux

更改sdb3为swap交换分区

命令(输入 m 获取帮助):t
分区号 (1-6,默认 6):3
Hex 代码(输入 L 列出所有代码):l

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    14682111     3145728   82  Linux swap / Solaris
/dev/sdb4        14682112    20971519     3144704    5  Extended
/dev/sdb5        14684160    16781311     1048576   83  Linux
/dev/sdb6        16783360    20971519     2094080   83  Linux

删除sdb6分区

命令(输入 m 获取帮助):d
分区号 (1-6,默认 6):6
分区 6 已删除

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    14682111     3145728   82  Linux swap / Solaris
/dev/sdb4        14682112    20971519     3144704    5  Extended
/dev/sdb5        14684160    16781311     1048576   83  Linux

保存分区修改并退出

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

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

				查看磁盘分区列表
					[root@gh1 ~]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    14682111     3145728   82  Linux swap / Solaris
/dev/sdb4        14682112    20971519     3144704    5  Extended
/dev/sdb5        14684160    16781311     1048576   83  Linux

文件系统

文件系统

SWAP:交换文件系统,相当于虚拟内存。能够在一定程度上缓解物理内存不足的问题。

EXT4:第4代扩展文件系统,典型的日志型文件系统,保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。

XFS:高性能的日志文件系统,擅长处理大文件,能识别PB级别的存储。由于文件系统开启日志功能,所以即使发生宕机也不怕数据遭到破坏,可根据日志记录在短时间内进行数据恢复。

创建文件系统

mkfs.文件系统类型 分区设备

格式化sdb1为xfs文件系统

[root@gh1 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, 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 -t 文件系统类型 分区设备

格式化sdb5为ext4文件系统

[root@gh1 ~]# mkfs -t ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

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

扩展 语法格式:lsblk[参数]

了解

常用参数:

-a显示所有设备
-b以bytes方式显示设备大小
-d不显示slaves或holders
-D print discard capabilities
-e排除设备

-f显示文件系统信息
-h显示帮助信息

-i use ascii characters only
-m显示权限信息

-l使用列表格式显示

-n不显示标题

-o输出列.

-P使用key="value"格式显示
-r使用原始格式显示

-t显示拓扑结构信息

df格式[ options]

df -Th常用

1.作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。

主要参数

了解
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定一s,也不指定一a,则只显示NMames中的每一个目录及其中的各子目录所占的磁盘块数。
-k:以1024字节为单位列出磁盘空间使用情况。
-x:跳过在不同文件系统上的目录不予统计。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-i:显示inode信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB。一P:使用POSIx输出格式。
-T:显示文件系统类型。

挂载

mount [-t 文件系统类型] 存储设备 挂载点

点击查看代码
[root@gh1 ~]# mkdir /mnt/guazai01
[root@gh1 ~]# mount /dev/sdb1 /mnt/guazai01/
[root@gh1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        10G  4.5G  5.6G   45% /
devtmpfs                devtmpfs  974M     0  974M    0% /dev
tmpfs                   tmpfs     991M     0  991M    0% /dev/shm
tmpfs                   tmpfs     991M   11M  981M    2% /run
tmpfs                   tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/sda1               xfs       197M  144M   54M   74% /boot
tmpfs                   tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/sdb1               xfs       2.0G   33M  2.0G    2% /mnt/guazai01

umount卸载挂载

自动挂载

/etc/fstab
cat查看

点击查看代码
[root@gh1 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Jun 22 19:41:06 2022
#
# 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=bf411dcd-88a9-4843-ade2-fbf89b329f8f /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0


第一字段:设备名或设备卷标名。

第二字段:文件系统的挂载点目录的位置。

第三字段:文件系统类型,如ext4、xfs、swap等。

第四字段:挂载参数,如defaults默认、rw读写、ro只读、noexec禁止执行程序。

第五字段:表示文件是否需要dump备份,1需要,0忽略。

第六字段:决定系统启动时进行磁盘检查的顺序,0不进行,1优先,2其次。一般根分区设1,其他分区设2,或者都不设置。

vim编辑

[root@gh1 ~]# vim /etc/fstab
/dev/sdb1       /mnt/guazai01     xfs     defaults        0 0

mount -a刷新永久挂载 或reboot重启

[root@gh1 ~]# mount -a
[root@gh1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        10G  4.5G  5.6G   45% /
devtmpfs                devtmpfs  974M     0  974M    0% /dev
tmpfs                   tmpfs     991M     0  991M    0% /dev/shm
tmpfs                   tmpfs     991M   11M  981M    2% /run
tmpfs                   tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/sda1               xfs       197M  144M   54M   74% /boot
tmpfs                   tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/sdb1               xfs       2.0G   33M  2.0G    2% /mnt/guazai01
posted @ 2022-07-05 18:31  玖拾一  阅读(236)  评论(0编辑  收藏  举报