【Linux】磁盘管理与文件系统

1.磁盘基础

1.1 磁盘结构

硬盘的物理结构

盘片:硬盘有多个盘片,每盘片2面

磁头:每面一个磁头

在这里插入图片描述

硬盘的数据结构

扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位。

磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面划出的圆形轨迹。

柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成。

在这里插入图片描述

  • 硬盘存储容量=磁头数 × 磁道(柱面)数 x 每道扇区数 × 每扇区字节数(512字节)

  • 可以用柱面/磁头/扇区唯一定位磁盘上每一个区域

  • 磁盘接口类型

● IDE、SATA、SCSI、SAS、光纤通道

接口类型 功能特性
IDE 并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利于电脑内部散热,已逐渐被SATA所取代
SATA 抗干扰性强,支持热插拔等功能,速度快,纠错能力强
SCSI 小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用资料传输时CPU占用率较低,转速快,支持热插拔等
SAS 是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s

1.2 MBR

主引导记录(MBR: Master Boot Record)

MBR位于硬盘第一个物理扇区处

MBR中包含硬盘的主引导程序和硬盘分区表

● 分区表有4个分区记录区,每个分区记录区占16个字节

● Linux中将硬盘、分区等设备均表示为文件

在这里插入图片描述

1.3 磁盘分区结构

硬盘中的主分区数目只有4个

主分区和扩展分区的序号限制在1~4

扩展分区再分为逻辑分区

逻辑分区的序号将始终从5开始

在这里插入图片描述

2. 文件系统类型

2.1 XFS文件系统

● 存放文件和目录数据的分区

高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间

CentOS 7系统中默认使用的文件系统

2.2 SWAP,交换文件系统

● 为Linux系统建立交换分区

● 一般设置为物理内存的1.5~2倍

Linux支持的其它文件系统类型

● EXT4、FAT32、NTFS、LVM

注意: CentOS 6默认使用的文件系统是EXT4/3; CentOS 7默认使用的文件系统是XFS.

2.3 fdisk命令

fdisk命令

查看或管理磁盘分区

fdisk -l [磁盘设备] 或 fdisk [磁盘设备]

交互模式中的常用指令

m、p、n、d、t、 w、q

[root@clr ~]# fdisk -l (/dev/sda) #查看系统中磁盘分区情况,sd表示使用SCSI设备

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

   设备 Boot      Start         End      Blocks(块大小)   Id(系统对应ID号)  System(系统类型)
/dev/sda1   *(引导分区)     2099200    79771647    38836224   83  Linux
/dev/sda2       117698560   125829119     4065280    5  Extended
/dev/sda5       117700608   125829119     4064256   82  Linux swap / Solaris(交换分区)

2.4 创建新硬盘

新增一块硬盘,步骤如下所示:

设置——硬盘——添加;

在这里插入图片描述

硬盘,然后选择下一步;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

修改磁盘大小为40GB;

在这里插入图片描述

最后确定即可;

在这里插入图片描述

重启reboot,刷新后查看新增加的硬盘分区情况;

[root@clr ~]# fdisk -l

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区 #新增加的第二块硬盘sdb,b代表是第二块
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *     2099200    79771647    38836224   83  Linux
/dev/sda2       117698560   125829119     4065280    5  Extended
/dev/sda5       117700608   125829119     4064256   82  Linux swap / Solaris

在线刷新磁盘分区情况;

[root@clr ~]# echo "- - -" > /sys/class/scsi_host/host0/scan  #在线刷新磁盘命令
[root@clr ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@clr ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

[root@clr ~]# fdisk -l

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


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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *     2099200    79771647    38836224   83  Linux
/dev/sda2       117698560   125829119     4065280    5  Extended
/dev/sda5       117700608   125829119     4064256   82  Linux swap / Solaris

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区 #新增加的第三块磁盘分区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

将磁盘 /dev/sdb再次分区;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.创建文件系统

3.1 mkfs

将新硬盘分好区以后,还需要对分区进行格式化(即创建文件系统),并挂载到Linux系统中的指定目录下,然后才能用于存储文件、目录等数据。

mkfs命令
在这里插入图片描述
示例
在这里插入图片描述

[root@clr ~]# ls /sbin/mkfs* #查看以mkfs开头的所有文件
/sbin/mkfs        /sbin/mkfs.cramfs  /sbin/mkfs.ext3  /sbin/mkfs.fat    /sbin/mkfs.msdos  /sbin/mkfs.xfs
/sbin/mkfs.btrfs  /sbin/mkfs.ext2    /sbin/mkfs.ext4  /sbin/mkfs.minix  /sbin/mkfs.vfat

mkfs -t xfs [指定分区]:将指定分区格式化为xfs类型;

[root@clr ~]# mkfs -t 
btrfs   cramfs  ext2    ext3    ext4    fat     minix   msdos   vfat    xfs     

[root@clr ~]# mkfs -t xfs /dev/sdb1 #将/dev/sdb指定为xfs类型的文件系统
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, 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.ext4 [指定分区]:将指定分区格式化为ext4类型;

[root@clr ~]# mkfs.
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat    
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
[root@clr ~]# mkfs.ext4 /dev/sdb5 #将/dev/sdb5指定为ext4类型的文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

Allocating group tables: 完成                            

mkswap命令

在这里插入图片描述

mkswap [分区设备]:为指定交换分区格式化文件系统;

[root@clr ~]# mkswap /dev/sdc1  #为交换分区/dev/sdc1创建文件系统
正在设置交换空间版本 1,大小 = 5242876 KiB
无标签,UUID=90f22d9c-46b4-4faa-a4ae-7ee42ee0a439

free -m :查看系统内存情况,-m统一单位,以兆为单位查看内存

[root@clr ~]# free -m #查看系统内存情况,-m统一单位,以兆为单位查看内存
              total        used        free      shared  buff/cache   available
Mem:           3931         772        2446          17         713        2921
Swap:          3968           0        3968

free -h :以人性化方式,查看内存情况

[root@clr ~]# free -h #以人性化方式,查看内存情况
              total        used        free      shared  buff/cache   available
Mem:           3.8G        772M        2.4G         17M        713M        2.9G
Swap:          3.9G          0B        3.9G

swapon [分区设备]:启用新增加的交换分区;

[root@clr ~]# swapon /dev/sdc1  #启用新增加的交换分区/dev/sdc1
[root@clr ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3931         775        2442          17         713        2917
Swap:          9088           0        9088
[root@clr ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.8G        775M        2.4G         17M        713M        2.8G
Swap:          8.9G          0B        8.9G

swapon -s:查看系统中的交换分区由哪几个设备提供;

[root@clr ~]# swapon -s  #查看系统中的交换分区由哪几个设备提供
文件名				类型		大小	已用	权限
/dev/sda5                              	partition	4064252	0	-2
/dev/sdc1                              	partition	5242876	0	-3

swapoff [分区设备]:停用指定的交换分区设备;

[root@clr ~]# swapoff /dev/sdc1 #停用指定的交换分区设备/dev/sdc1
[root@clr ~]# swapon -s #查看系统中的交换分区由哪几个设备提供
文件名				类型		大小	已用	权限
/dev/sda5                              	partition	4064252	0	-2

swapoff -a :停用系统中所有的交换分区;

[root@clr ~]# swapoff -a  #停用系统中所有的交换分区
[root@clr ~]# free -h #查看系统中的交换分区由哪几个设备提供
              total        used        free      shared  buff/cache   available
Mem:           3.8G        771M        2.4G         17M        714M        2.9G
Swap:            0B          0B          0B #此时可以看到洗系统中的交换分区为0

3.2 挂载、卸载文件系统

mount命令

在这里插入图片描述

[root@clr ~]# mkdir /data1
[root@clr ~]# ls /
admin  boot   dev  home  lib64  mnt  proc  run   srv  tmp  var
bin    data1  etc  lib   media  opt  root  sbin  sys  usr
[root@clr ~]# mount /dev/sdb1 /data1/ #将/dev/sdb1硬盘分区挂载到/data1目录下
[root@clr ~]# df #查看磁盘挂载情况
文件系统          1K-块    已用     可用 已用% 挂载点
devtmpfs        1997348       0  1997348    0% /dev
tmpfs           2013076       0  2013076    0% /dev/shm
tmpfs           2013076   12736  2000340    1% /run
tmpfs           2013076       0  2013076    0% /sys/fs/cgroup
/dev/sda1      38817264 5684776 33132488   15% /
tmpfs            402616      24   402592    1% /run/user/0
/dev/sr0        4600876 4600876        0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1      20961280   32992 20928288    1% /data1 #已成功将/dev/sdb1 挂载到/data1目录下

mount -o loop [ISO镜像文件] [挂载点目录]:将镜像文件挂载到指定目录;

[root@clr /mnt]# cd /opt #切换到/opt目录

[root@clr /opt]# mount -o loop CentOS-7-x86_64-DVD-2009-7.9.iso /mnt #将镜像文件挂载到指定目录/mnt
mount: /dev/loop0 写保护,将以只读方式挂载
[root@clr /opt]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G   13M  2.0G    1% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1        38G  9.4G   28G   26% /
tmpfs           394M   12K  394M    1% /run/user/42
tmpfs           394M     0  394M    0% /run/user/0
/dev/sdb1        20G   33M   20G    1% /data
/dev/sdb5       9.8G   37M  9.2G    1% /data2
/dev/loop0      4.4G  4.4G     0  100% /mnt #此处查看可以看到,镜像文件已经挂载成功

[root@clr /opt]# cd /mnt #切换到挂载点所在目录
[root@clr /mnt]# ls  #查看,以下都是新挂载的ISO镜像文件
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

umount -lf [挂载点目录]:表示强制卸载指定目录;

[root@clr /mnt]# cd /data
[root@clr /data]# umount /data
umount: /data:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@clr /data]# umount -lf /data
[root@clr /data]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G   13M  2.0G    1% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1        38G  9.4G   28G   26% /
tmpfs           394M   12K  394M    1% /run/user/42
tmpfs           394M     0  394M    0% /run/user/0
/dev/sdb5       9.8G   37M  9.2G    1% /data2
/dev/loop0      4.4G  4.4G     0  100% /mnt

在这里插入图片描述

通过配置文件方式,实现永久挂载;

#
# /etc/fstab
# Created by anaconda on Thu Mar 23 00:41:12 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
#
UUID=bafe91da-4fb0-4d72-b66e-4f98f1645b49 /                       xfs     defaults        0 0
UUID=54c26300-4b67-4510-a83f-07da2560c5a8 swap                    swap    defaults        0 0
/dev/sdb1                                /data                    xfs     defaults        0 0
UUID=b53750a3-dacd-490e-8efd-d57c7f079ab9 /data2                  ext4     defaults        0 0
/dev/sr0                                  /mnt                    iso9660  defaults       0  0

用于存放开机自动执行命令的文件;

[root@clr /]# vim /etc/fstab   #将需要开机自启动的参数放置在/etc/fstab文件中
[root@clr /]# vim /etc/profile
[root@clr /]# vim ~/.bash_profile
[root@clr /]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 45 17:34 /etc/rc.local -> rc.d/rc.local
[root@clr /]# vim /etc/rc.local
[root@clr /]# chmod +x /etc/rc.d/rc.local
[root@clr /]# ll !$  #能够自动识别上条命令中的最后一个字段/一列内容

在这里插入图片描述

在这里插入图片描述

3.3 查看磁盘使用情况

df命令

df [选项] [文件]

示例

在这里插入图片描述

lsblk:查看当前所有分区设备的挂载情况;

[root@clr /data]# lsblk  #lsblk:查看当前所有分区设备的挂载情况;
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk 
├─sda1   8:1    0   37G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0  3.9G  0 part [SWAP]  #交换分区
sdb      8:16   0   40G  0 disk 
├─sdb1   8:17   0   20G  0 part /data #sdb1挂载到/data目录下
├─sdb2   8:18   0    1K  0 part 
└─sdb5   8:21   0   10G  0 part /data2  #sdb5挂载到/data2目录下
sdc      8:32   0   20G  0 disk 
└─sdc1   8:33   0    5G  0 part [SWAP]
sr0     11:0    1  4.4G  0 rom  
loop0    7:0    0  4.4G  0 loop /mnt  #镜像文件挂载到/mnt目录下

猜你喜欢

转载自blog.csdn.net/cailirong123/article/details/129937210