磁盘管理与文件系统

本文介绍了Linux系统中的磁盘管理,包括磁盘分区的基本概念,如MBR和GPT分区表,以及磁盘分区的创建和管理。详细讲解了分区命名规则和常用的管理命令如lsblk、blkid、parted和fdisk。此外,还探讨了文件系统,包括基本结构、相关命令如df和du,以及硬链接和软链接的使用。
摘要由CSDN通过智能技术生成

目录

磁盘管理

一、基本概念

二、磁盘分区管理

 分区命名规则

常用命令:

文件系统

一、文件系统基本概念

二、文件系统基本结构

三、文件系统相关命令


磁盘管理

一、基本概念

磁盘分区的作用

刚出厂的磁盘不能直接使用,必须分区

易于管理和使用

有利于数据安全

提高系统运行效率

Linux磁盘分区格式

主引导记录分区  MBR

        主分区:最多只能有4个。

        扩展分区:最多只能有一个。

     主分区加扩展分区最多有4个。

     不能写入数据,只能包含逻辑分区

        逻辑分区:用来写入数据。

全局唯一标识分区列表   GPT

        分区数量几乎没有限制(Windows中最多支持128个)

        分区大小几乎没有限制(64位整数)

        支持2TB以上的大硬盘

        在磁盘末端增加分区表备份

Linux磁盘分区类型

(1)主分区:也称为引导分区,用来启动操作系统。

(2)扩展分区:实际在硬盘中是看不到的,也无法直接使用扩展分区,而是用来划分逻辑分区。

(3)逻辑分区:相当于一块存储介质,在扩展分区上可以创建多个逻辑分区,用来存储数据。

二、磁盘分区管理

分区命名规则

常用命令

lsblk 命令

lsblk命令以树状结构显示系统中的所有磁盘及磁盘的分区

[an@localhost ~]$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   15G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   14G  0 part 
  ├─centos-root 253:0    0 12.5G  0 lvm  /
  └─centos-swap 253:1    0  1.5G  0 lvm  [SWAP]
sr0              11:0    1  4.3G  0 rom  /run/media/an/CentOS 7 x86_64

注意:  各字段的含义如下

设备名

设备代码(MAJ:MIN)

可卸载设备(RM:0表示不可卸载)

容量(SIZE)

只读设备(RO:0表示不是只读)

设备类型(TYPE:sr0表示只读存储)

挂载点(MOUNT POINT)

blkid 命令

功能:快速查询每个分区的全局唯一标识符(UUID)和文件系统类型

[an@localhost ~]$ blkid
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 

parted 命令

功能:查看磁盘分区表的类型及分区详细信息

[an@localhost ~]$ sudo parted /dev/sda print
[sudo] an 的密码:
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 16.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  16.1GB  15.0GB  primary               lvm

fdisk 新建分区

MBR分区表使用 fdisk 命令

gdisk 新建分区

GPT分区表使用 gdisk 命令

b 将GPT数据备份到一个文件

c 更改分区名称

d 删除一个分区

i 显示分区详细信息

l 列出已知分区类型。此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83)。还有一个8e00是Linux LVM

n 增加一个新的分区

o 创建一个新的空白的GPT分区表

p 显示当前磁盘的分区表

q 退出gdisk程序,不保存任何修改

r 恢复和转换选项(仅限专家)

s 排序分区

t 改变分区的类型

v 验证磁盘分区表

w 将分区表写入裁判并退出(保存并退出)

x 额外功能(仅限专家)

? 显示帮助信息

[an@localhost ~]$ sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

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

Creating new GPT entries.

Command (? for help): n   // 创建新分区
Partition number (1-128, default 1): 
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-2097118, default = 2097118) 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 (2-128, default 2): 
First sector (34-2097118, default = 206848) or {+-}size{KMGTP}: 
Last sector (206848-2097118, default = 2097118) or {+-}size{KMGTP}: +200M
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 (3-128, default 3): 
First sector (34-2097118, default = 616448) or {+-}size{KMGTP}: 
Last sector (616448-2097118, default = 2097118) or {+-}size{KMGTP}: +500M
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): p    // 打印查看
Disk /dev/sdb: 2097152 sectors, 1024.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): ACD09380-A57F-4AF7-B3EF-26A1A34A5054
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 2097118
Partitions will be aligned on 2048-sector boundaries
Total free space is 458685 sectors (224.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          206847   100.0 MiB   8300  Linux filesystem
   2          206848          616447   200.0 MiB   8300  Linux filesystem
   3          616448         1640447   500.0 MiB   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.

mount 命令  分区挂载

分区前、挂载前:
[an@localhost ~]$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   15G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   14G  0 part 
  ├─centos-root 253:0    0 12.5G  0 lvm  /
  └─centos-swap 253:1    0  1.5G  0 lvm  [SWAP]


分区后、挂载后:
[an@localhost program8]$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   15G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   14G  0 part 
  ├─centos-root 253:0    0 12.5G  0 lvm  /
  └─centos-swap 253:1    0  1.5G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
├─sdb1            8:17   0  100M  0 part /home/an/program8/aaa
├─sdb2            8:18   0  200M  0 part /home/an/program8/bbb
└─sdb3            8:19   0  500M  0 part /home/an/program8/ccc
sr0              11:0    1  4.3G  0 rom  /run/media/an/CentOS 7 x86_64

注:
挂载失败,尝试格式化新分区mkfs.ext4 /dev/分区名
[an@localhost ~]$ sudo mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              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

看到realtime =none ,就代表已经好了,特殊情况需要加上-f,强制覆盖

umount 命令 

当不再使用其挂载功能时,可以使用umount命令将目录与挂载到该目录下的文件系统(U盘)断开

关系,即卸载。

一旦关系断开,目录将只是一个单纯的目录。

[an@localhost program8]$ sudo umount /dev/sdb1
[sudo] an 的密码:
[an@localhost program8]$ sudo umount /dev/sdb2
[an@localhost program8]$ sudo umount /dev/sdb3
[an@localhost program8]$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   15G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   14G  0 part 
  ├─centos-root 253:0    0 12.5G  0 lvm  /
  └─centos-swap 253:1    0  1.5G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
├─sdb1            8:17   0  100M  0 part 
├─sdb2            8:18   0  200M  0 part 
└─sdb3            8:19   0  500M  0 part 
sr0              11:0    1  4.3G  0 rom  /run/media/an/CentOS 7 x86_64

文件系统

一、文件系统基本概念

通常情况下,可以将文件系统简单地定义为对文件进行管理的一种机制

硬盘作为一个机械式的存储设备,并不知道该如何对存入的文件进行管理

因此,通过将可以对文件进行管理的文件系统移植到硬盘上来实现文件的存储十分重要,此时文件

则可以按照规则合理地存储在硬盘上

二、文件系统基本结构

数据块(block)保存文件的实际内容。如果文件太长,可能会占用多个数据块。

inode一个文件对应一个inode记录文件的属性信息及文件占用的数据块编号。

        inode索引结构:

                inode中记录区块编号的区域称为指针,每个指针占用4个字节

                inode中有12个直接指针、1个一重指针,1个二重指针和1个三重指针

                        12个直接指针支持的最大文件是12KB

                        二重指针指向的区块保存的是一重指针,一个二重指针支持的最大文件是 216KB

                        三重指针指向的区块保存的是二重指针,一个三重指针支持的最大文件是 224KB

超级数据块:记录和文件系统有关的信息,如inode和数据块的数量、使用情况、文件系统的格式及其他信息。

区块位图:记录文件系统中所有区块的使用状态。

inode位图:inode位图记录每个inode的状态。

三、文件系统相关命令

df  命令

功能:从超级数据块中读取信息,显示整个文件系统的空间使用情况(空余硬盘)

选项

功能说明

-a

显示所有文件系统,包括 /proc/sysfs 等系统特有的文件系统

-m

MB 为单位显示文件系统空间

-k

KB 为单位显示文件系统空间

-h

使用人们习惯的 KBMB GB 为单位显示文件系统空间

-H

指定容量的换算以 1000 进位,即 1K=1000B1M=1000K

-T

显示每个分区的文件系统类型

-i

使用 inode 数量代替磁盘容量显示磁盘使用情况

-t  fstype

只显示特定类型的文件系统

[an@localhost ~]$ df
文件系统                   1K-块    已用    可用 已用% 挂载点
/dev/mapper/centos-root 13092864 5924168 7168696   46% /
devtmpfs                 1913668       0 1913668    0% /dev
tmpfs                    1930740       0 1930740    0% /dev/shm
tmpfs                    1930740   12812 1917928    1% /run
tmpfs                    1930740       0 1930740    0% /sys/fs/cgroup
/dev/sda1                1038336  182780  855556   18% /boot
tmpfs                     386152       4  386148    1% /run/user/42
tmpfs                     386152      36  386116    1% /run/user/1000
/dev/sr0                 4480476 4480476       0  100% /run/media/an/CentOS 7 x86_64


注意:   df 命令各列的含义如下
文件系统:文件系统所在的分区名称

1K-块:以1KB为单位的文件系统空间大小

已用:已使用的磁盘空间

可用:剩余的磁盘空间

已用%:磁盘空间使用率

挂载点:分区的挂载目录

df命令会自动分析目录或文件所在的分区,并显示分区信息

[an@localhost ~]$ df -h /home
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   13G  5.7G  6.9G   46% /
[an@localhost ~]$ df -h /bin
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   13G  5.7G  6.9G   46% /

du 命令

功能:计算目录或文件所占的磁盘空间大小

选项

功能说明

-a

显示所有目录和文件的容量

-k

KB为单位显示容量

m

MB为单位显示容量

-h

使用人们习惯的KBMBGB为单位显示容量

-s

仅显示目录总容量,不显示子目录和子文件的磁盘占用量

-S

显示目录容量,但不包括子目录的大小

[an@localhost ~]$ du  //不加任何选项和参数时,du 会显示当前目录及其所有子目录的容量
.........
[an@localhost ~]$ du -s
8276	.
[an@localhost ~]$ du -S
0	./.mozilla/extensions
0	./.mozilla/plugins
0	./.mozilla
0	./.cache/gdm
8	./.cache/imsettings
........

文件链接  ln 命令

选项

功能说明

-b

删除,覆盖以前建立的链接

-f

强制执行

-I

交互模式,文件存在则提示用户是否覆盖

-n

把符号链接视为一般目录

-s

软链接(符号链接)

-v

显示详细的处理过程

硬链接:

功能:创建一个链接文件指向原文件的 inode

链接文件和原文件共享同一个 inode,文件属性完全相同,通过“ls -l”的第二列中查看硬链接数目。

链接文件是原文件的“别名”

硬链接特征:

不论是修改源文件,还是修改硬链接文件,另一个文件中的数据都会发生改变

不论删除源文件或是硬链接文件(只是删除这个文件和 inode 的对应关系),只要有一个文件存在

文件都可以被访问

硬链接不会建立新的inode信息,不能对目录文件做硬链接。

不能在不同的文件系统之间做硬链接,即链接文件和被链接文件必须处理同一文件系统中。

[an@localhost 2022]$ ls -li a1   // 使用-i选项显示文件inode编号
3924253 -rw-rw-r--. 1 an an 0 5月   5 20:57 a1
[an@localhost 2022]$ cat a1
i like game

[an@localhost 2022]$ ln a1 hardlink_a1      // ln命令默认建立硬链接
[an@localhost 2022]$ ls -li a1 hardlink_a1
3921841 -rw-rw-r--. 2 an an 12 5月  12 15:05 a1
3921841 -rw-rw-r--. 2 an an 12 5月  12 15:05 hardlink_a1
[an@localhost 2022]$ rm a1     // 删除原文件
[an@localhost 2022]$ ls -li hardlink_a1   // 硬链接文件仍在
3921841 -rw-rw-r--. 1 an an 12 5月  12 15:05 hardlink_a1
[an@localhost 2022]$ cat hardlink_a1 
i like game   // 内容不变

软链接:

软链接通过文件的路径名建立链接,也叫做符号链接。

软链接是一个独立的文件,有自己的 inode,类似于快捷方式。

软链接的数据块保存的是原文件的文件名

软链接特征:

不论是修改源文件,还是修改硬链接文件,另一个文件中的数据都会发生改变

删除软链接文件,源文件不受影响;而删除源文件,链接文件找不到实际的数据,则会失效。

可以跨文件系统

[an@localhost 2022]$ ls -li a2  // 使用-i选项显示文件inode编号
3921846 -rw-rw-r--. 1 an an 16 5月  12 15:14 a2
[an@localhost 2022]$ ln -s a2 softlink_a2      // 使用-s选项建立软链接
[an@localhost 2022]$ ls -li a2 softlink_a2     // 两个文件的属性并不相同
3921846 -rw-rw-r--. 1 an an 16 5月  12 15:14 a2
3924229 lrwxrwxrwx. 1 an an  2 5月  12 15:14 softlink_a2 -> a2
[an@localhost 2022]$ rm a2
[an@localhost 2022]$ cat softlink_a2 
cat: softlink_a2: 没有那个文件或目录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值