linux系统的磁盘管理(代码片段)

jks212454 jks212454     2022-12-26     737

关键词:

一、环境介绍

1.Linux系统版本

[root@node1 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.0 (Ootpa)
[root@node1 ~]# 

2.系统磁盘情况

[root@node1 ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   20G  0 disk 
sdb           8:16   0   20G  0 disk 
sdc           8:32   0   20G  0 disk 
sdd           8:48   0   20G  0 disk 
sr0          11:0    1 1024M  0 rom  
nvme0n1     259:0    0   20G  0 disk 
├─nvme0n1p1 259:1    0  500M  0 part /boot
├─nvme0n1p2 259:2    0    2G  0 part [SWAP]
└─nvme0n1p3 259:3    0 17.5G  0 part /
[root@node1 ~]# 

二、磁盘介绍

1.磁盘分区理解

将磁盘划分为逻辑存储单元,这些单元成为分区,对不同的分区执行不同的功能。

2.MBR分区方案

分区类型:主分区、扩展分区和逻辑分区
限制:最多有4个主分区,磁盘最大为2TB
MBR:主引导记录(MBR),也被称为主引导扇区,是计算机开机以后访问硬盘时所必须要读取的第一个扇区。

MBR(主引导扇区)+主分区1+主分区2+主分区3+扩展分区4(包括逻辑分区5+逻辑分区6+未使用空间)

2.GPT分区分区方案

GPT:GPT使用全局唯一表示符GUID来识别磁盘和分区
GPT提供分区表备份功能,主GPT位于磁盘头部,备份的GPT位于磁盘尾部。
限制:最多有128个分区,磁盘最大为8ZiB
主GPT+sda1+sda2+sda3+…+备GPT

三、分区工具fidsk使用

1.查看磁盘和分区信息

fdisk工具分区为MBR分区

[root@node1 ~]# fdisk -l
Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9bbd6bb3

Device         Boot   Start      End  Sectors  Size Id Type
/dev/nvme0n1p1 *       2048  1026047  1024000  500M 83 Linux
/dev/nvme0n1p2      1026048  5220351  4194304    2G 82 Linux swap / Solaris
/dev/nvme0n1p3      5220352 41940991 36720640 17.5G 83 Linux




Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

2.查看指定设备信息

[root@node1 ~]# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9bbd6bb3

Device         Boot   Start      End  Sectors  Size Id Type
/dev/nvme0n1p1 *       2048  1026047  1024000  500M 83 Linux
/dev/nvme0n1p2      1026048  5220351  4194304    2G 82 Linux swap / Solaris
/dev/nvme0n1p3      5220352 41940991 36720640 17.5G 83 Linux
[root@node1 ~]# fdisk -l /dev/sda
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@node1 ~]# 

3.对新磁盘进行分区

[root@node1 ~]# 
[root@node1 ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x962ab0e1.

Command (m for help): n                 
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): +5G
Value out of range.
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +sizeK,M,G,T,P (2048-41943039, default 41943039): +5G

Created a new partition 1 of type 'Linux' and of size 5 GiB.

Command (m for help): p
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x962ab0e1

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1        2048 10487807 10485760   5G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@node1 ~]# 

4.格式化文件系统

[root@node1 ~]# mkfs.xfs /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=1310720, 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
[root@node1 ~]# 

四、gdisk工具使用

1.gdisk进行分区

gdisk工具主要为gpt分区

[root@node1 ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3

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-41943006, default = 2048) or +-sizeKMGTP: 
Last sector (2048-41943006, default = 41943006) or +-sizeKMGTP: +6G
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): 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.
[root@node1 ~]# lsblk

2.查看sdb磁盘下分区情况

[root@node1 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   20G  0 disk 
└─sda1        8:1    0    5G  0 part 
sdb           8:16   0   20G  0 disk 
└─sdb1        8:17   0    6G  0 part 
sdc           8:32   0   20G  0 disk 
sdd           8:48   0   20G  0 disk 
sr0          11:0    1 1024M  0 rom  
nvme0n1     259:0    0   20G  0 disk 
├─nvme0n1p1 259:1    0  500M  0 part /boot
├─nvme0n1p2 259:2    0    2G  0 part [SWAP]
└─nvme0n1p3 259:3    0 17.5G  0 part /
[root@node1 ~]# 

五、挂载文件系统

[root@node1 ~]# 
[root@node1 ~]# mkdir /mnt/test
[root@node1 ~]# mount /dev/sda1 /mnt/test/
[root@node1 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        970M     0  970M   0% /dev
tmpfs           984M     0  984M   0% /dev/shm
tmpfs           984M  9.3M  974M   1% /run
tmpfs           984M     0  984M   0% /sys/fs/cgroup
/dev/nvme0n1p3   18G   11G  7.3G  59% /
/dev/nvme0n1p1  495M  140M  356M  29% /boot
overlay          18G   11G  7.3G  59% /var/lib/docker/overlay2/3851b60316c4c9b3d888c4e6133589bee2882b3e231cf2c4d9ff42eca7a4a390/merged
overlay          18G   11G  7.3G  59% /var/lib/docker/overlay2/8c7e59c24a0b2648c82f41eeddba522e58e06c6809ff702f641f6377b60e8d1f/merged
tmpfs           197M  4.0K  197M   1% /run/user/0
/dev/sda1       5.0G   68M  5.0G   2% /mnt/test
[root@node1 ~]# 

六、查看文件系统信息

[root@node1 ~]# lsblk -fs
NAME      FSTYPE LABEL UUID                                 MOUNTPOINT
sda1      xfs          7060a61e-a422-4d5e-b37d-f6998463dddd /mnt/test
└─sda                                                       
sdb1                                                        
└─sdb                                                       
sdc                                                         
sdd                                                         
sr0                                                         
nvme0n1p1 xfs          525a30a7-d484-4ed5-9f38-f827f54e29ff /boot
└─nvme0n1                                                   
nvme0n1p2 swap         e6cf8733-5eec-4942-9429-c3e9087b6ff0 [SWAP]
└─nvme0n1                                                   
nvme0n1p3 xfs          b7190d80-906f-4b9d-9ab4-5a503ecaea2c /
└─nvme0n1                                                   
[root@node1 ~]# 

七、fsck文件系统修复工具

1.fsck使用语法

语法
fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]
参数 :

filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)
-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 partition 做检查
-C : 显示完整的检查进度
-d : 列印 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复

2.修复ext4格式文件系统

[root@node1 ~]# fsck -t ext4 /dev/sda2
fsck from util-linux 2.32.1
e2fsck 1.44.3 (10-July-2018)
/dev/sda2: clean, 11/327680 files, 42078/1310720 blocks
[root@node1 ~]# 

3.fsck自动修复

[root@node1 ~]# fsck -a /dev/sda2
fsck from util-linux 2.32.1
/dev/sda2: clean, 11/327680 files, 42078/1310720 blocks
[root@node1 ~]# 

4.e2fsck自动修复

[root@node1 ~]# e2fsck -y /dev/sda2
e2fsck 1.44.3 (10-July-2018)
/dev/sda2: clean, 11/327680 files, 42078/1310720 blocks
[root@node1 ~]# 

八、xfs_repair文件系统修复工具

[root@node1 ~]# xfs_repair /dev/sda1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
[root@node1 ~]# 

四linux磁盘与文件系统管理(代码片段)

一、Linux文件系统每种操作系统能够使用的文件系统并不相同,Linux的正统文件系统为Ext2(Linuxsecondextendedfilesystem,ext2fs)。现在通常可以称呼一个可被挂载的数据为一个文件系统。文件系统的运行机制与操作系统的文... 查看详情

linux0.11源码阅读笔记-文件管理(代码片段)

Linux0.11源码阅读笔记-文件管理文件系统生磁盘未安装文件系统的磁盘称之为生磁盘,生磁盘也可以作为文件读写,linux中一切皆文件。磁盘分区生磁盘可以被分区,分区中可以安装文件系统,常见的文件系统有fat32、ext2、ext4等... 查看详情

linux磁盘,进程,软件安装(代码片段)

1、磁盘管理1.1、概述Linux磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用命令为df、du。df:列出文件系统的整体磁盘使用量du:检查磁盘空间使用量1.2、dfdf命令参数功能:检查文件系统的磁盘空间占用情况。可... 查看详情

linux磁盘管理详解--企业实战篇(代码片段)

 写在前面:    无论是windows系统还是Linux系统中,所有的文件最终都是存储在硬盘上的,都是在用文件系统管理,要想彻底搞清楚文件系统的管理机制,对磁盘的了解是必不可少的。    一、磁盘的认识... 查看详情

linux磁盘管理详解--企业实战篇(代码片段)

 写在前面:    无论是windows系统还是Linux系统中,所有的文件最终都是存储在硬盘上的,都是在用文件系统管理,要想彻底搞清楚文件系统的管理机制,对磁盘的了解是必不可少的。    一、磁盘的认识... 查看详情

linux磁盘与文件管理(代码片段)

...:df,dudf[-ahiHTm][目录与文件名]-a列出所有的文件系统-k以kb的容量显示文件系统-m以mb的容量显示文件系统-h以人易于阅读的数据显示文件系统-H以1000代替1024-T连同该分区的文件系统-i不用硬盘熔炼而是以inode的数 查看详情

linux磁盘管理(代码片段)

...。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以1KB为单位进行显示。选项:  -a全部文件系统 查看详情

逻辑卷管理器(lvm)(代码片段)

...境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。LVM的工作原理其实很简单,它就是通过将底层的物... 查看详情

linux磁盘管理(fdisk磁盘管理工具|swap交换分区|lvm逻辑卷管理)(代码片段)

目录1Linux磁盘管理1.1fdisk磁盘管理工具1.2文件系统2磁盘管理二2.1创建swap交换分区2.2关闭swap交换分区2.3逻辑卷管理:LVM1Linux磁盘管理lsblk:列出所有可用块设备的信息fdisk-l:查看磁盘所有分区信息blkid:查看文件系... 查看详情

linux运维从入门到进阶(代码片段)

 Linux磁盘管理知识点磁盘和文件系统简介文件系统工具磁盘分区管理交换分区逻辑卷和阵列  磁盘和文件系统介绍正如上文中提到的,Linux中一切都是文件。这个重要的概念贯穿整个Linux的始末,磁盘也是如此。各种接... 查看详情

linux系统的磁盘管理(代码片段)

(Linux系统的磁盘管理)一、环境介绍1.Linux系统版本[root@node1~]#cat/etc/redhat-releaseRedHatEnterpriseLinuxrelease8.0(Ootpa)[root@node1~]#2.系统磁盘情况[root@node1~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:0020G0disksdb8:16020G0disksdc8:32020G0disksdd8:48020G0disksr011:011024... 查看详情

linux系统权限信息和管理(代码片段)

系统信息相关命令本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况本小结学习的终端命令基本都是查询命令,通过这些命令对系统资源... 查看详情

不知道linux文件系统是怎么工作的?详解来了(代码片段)

和CPU、内存一样,磁盘和文件系统的管理,也是操作系统最核心的功能。磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。那么,磁盘和文件系统是怎么... 查看详情

磁盘管理(代码片段)

...w保存并退出q不保存直接退出对磁盘操作完毕之后,Linux系统会自动把这个硬盘主分区抽象成/dev/sdb1设备文件。我们可以使用file命令查看该文件的属性,但是在工作中可以发现,有些时候系统并没有自动把分区信息同步给Lin 查看详情

linux磁盘分区(代码片段)

磁盘分区磁盘命名分区管理磁盘创建分区创建文件系统挂载交换分区增加交换分区准备分区格式化挂载逻辑卷创建LVMVG管理LV扩容磁盘命名kernel对不同硬盘命名方式CentOS7:1、SATA(单口)/dev/sda/dev:设备文件目录;s:sata单口;d:磁盘;a... 查看详情

linux磁盘分区(代码片段)

磁盘分区磁盘命名分区管理磁盘创建分区创建文件系统挂载交换分区增加交换分区准备分区格式化挂载逻辑卷创建LVMVG管理LV扩容磁盘命名kernel对不同硬盘命名方式CentOS7:1、SATA(单口)/dev/sda/dev:设备文件目录;s:sata单口;d:磁盘;a... 查看详情

linux磁盘与文件系统管理(代码片段)

...磁盘的分区、格式化、检验与挂载lsblk(listblockdevice)列出系统上的所有磁盘列表blkid列出设备的UUID等参数磁盘分区:gdisk/fdisk几个注意点磁盘分区linux磁盘分区主要分为基本分区(primarypartion)和扩充分区(extensionpartion)... 查看详情

linux磁盘管理(代码片段)

...后进行分区,接着对分区格式化,最后载到文件系统中。2.1添加磁盘RAID(RedundantarraysofindepnedentDisks)有着独立磁盘构成的具有冗余能力的阵列的意思。它是由许多独立的磁盘组合成一个容量巨大的磁盘组利用个别... 查看详情