CHAPTER 3 磁盘管理

news2025/8/7 11:46:02

磁盘管理

    • 1 磁盘管理
      • 1.1 块设备信息(lsblk)
      • 1.2 挂载硬盘
        • 1.2.1 挂载单个硬盘(mkfs、mount)
        • 1.2.2 磁盘分区工具(fdisk)
        • 1.2.3 创建分区
        • 1.2.4 相关命令
          • 1. df
          • 2. partprobe
          • 3. mkfs
      • 1.3 逻辑卷管理器(LVM)
        • 1. 涉及概念
        • 2. 使用LVM流程
      • 1.4 磁盘检测及修复(fsck)

1 磁盘管理

1.1 块设备信息(lsblk)

lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,CD-ROM等等。lsblk命令包含util-linux中。通过yum provides lsblk命令查看命令对应的软件包

[root@dbc-server-554 zabbix]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  1.8T  0 disk
├─sda1            8:1    0  200M  0 part /boot/efi
├─sda2            8:2    0    1G  0 part /boot
└─sda3            8:3    0  1.8T  0 part
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  7.8G  0 lvm  [SWAP]
  └─centos-home 253:3    0  1.8T  0 lvm  /home
sdb               8:16   0  1.8T  0 disk
└─sdb1            8:17   0  1.8T  0 part
  └─DBCVG-DBCLV 253:2    0  3.7T  0 lvm  /mnt/DBC_Data
sdc               8:32   0  1.8T  0 disk
└─sdc1            8:33   0  1.8T  0 part
  └─DBCVG-DBCLV 253:2    0  3.7T  0 lvm  /mnt/DBC_Data

字段含义

字段说明
NAME这是块设备名。
MAJ:MIN本栏显示主要和次要设备号。
RM本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE本栏显示块设备是否是磁盘或磁盘上的一个分区。sda和sdb是磁盘,而sr0是只读存储(rom)
MOUNTPOINT本栏指出设备挂载的挂载点。

从上述输出信息中,可以直观地了解到目前系统的硬盘分区及挂载情况。你也许可以发现,lsblk 显示的块设备的名字十分特别。事实上,Linux 中的块设备的命名是有一定规则的。

① 对于 SATA、SCSI 或 USB 接口的硬盘或 U 盘,其命名规则如下

主设备文件名次设置文件名(分区)
sd[小写字母],如 sda、sdb 等sd[小写字母][正整数],如 sda1、sdc1 等

② 对于 NVMe(M.2)接口的硬盘,其命名规则如下:

主设备文件名次设置文件名(分区)
nvme[非负整数],如 nvme0、nvme1 等nvme[非负整数]n[正整数]p[正整数],如 nvme0n1p1、nvme1n1p3 等

③ 对于 CD 或 DVD (ROM)光驱设备,其命名规则如下:

主设备文件名次设置文件名(分区)
sr[非负整数]如 sr0、sr1 等光驱不能分区

1.2 挂载硬盘

1.2.1 挂载单个硬盘(mkfs、mount)

查看linux下的硬盘

df -h
df -t tmpfs			#查看指定文件系统类型 

① 格式化:

mkfs -t ext4 /dev/sda1

② 创建挂载目录:

mkdir /data

③ 把空间挂在/data :

mount /dev/sda1 /data

④ 将以下信息添加到 /etc/fstab

/dev/sda1    /data    ext4    defaults    0    0

⑤ 立即执行 fstab 的内容:

mount -a

至此,硬盘挂载完毕。前三步为临时挂载,下次重启前挂载均有效,重启后挂载失效,当完成第四步后,已完成永久挂载

⑥ 若硬盘无法访问:
如出现报错: permission denied
同样修改文件权限即可:

sudo chmod 777 /media/sda1

⑦ 若需要解除挂载:

sudo umount /dev/sda1

⑧ 若需要临时挂载:
只是把硬盘插上,开机时可能会自动挂载硬盘,但是这样硬盘无法使用,需要先解除挂载:

sudo umount /dev/sdd1

重新挂载:

sudo mount /dev/sdd1 /snowstorm

1.2.2 磁盘分区工具(fdisk)

如果要挂载的硬盘,需要划分为多个分区,则需要创建分区,然后进行挂载,这个时候需要使用fdisk命令

Linux fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。

语法

# 更改分区表
fdisk [options] <disk>
# 列出分区表
fdisk [options] -l <disk>
# 给出分区大小
fdisk -s <partition>

该命令支持的选项有:

选项说明
-b <size>扇区大小(512、1024、2048或4096)
-c兼容模式:“dos”或“nondos”(默认)
-h打印此帮助文本
-u <size> 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-v打印版本信息
-C <number>指定柱面数
-H <number> 指定磁头数
-S <number>指定每个磁道的扇区数

当进入分区界面后,可以输入如下命令进行操作:

命令命令说明
a切换可引导标志
b编辑bsd磁盘标签
c切换dos兼容性标志
d删除分区
g创建一个新的空GPT分区表
G创建一个IRIX(SGI)分区表
l列出已知的分区类型
m打印此菜单
n添加一个新分区
o创建一个新的空DOS分区表
p打印分区表
q退出而不保存更改
s创建一个新的空Sun磁盘标签
t更改分区的系统id
u更改显示/输入单位
v验证分区表
w将表写入磁盘并退出
x额外功能(仅限专家)

查看支持的分区类型

Command (m for help): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / 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 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 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 hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix

1.2.3 创建分区

通过fdisk -l lsblk,我们可以知道那些磁盘是空闲并未使用
如果要为指定硬盘创建分区,命令格式如下:

# 语法
fdisk 指定磁盘
# 示例,给磁盘 /dev/sdb 进行分区,/dev/sdb 是查询出来的磁盘名
fdisk /dev/sdb

创建分区基本流程:

  • fdisk /dev/device
  • > p(显示设备详细信息)
  • > n(创建新分区)
  • >1(partition number)
  • > 回车,即选择默认(first sector)
  • > +20G(last sector)
  • 提示 Partition 1 of type Linux and of size 5 GiB is set
  • > p
  • > w(保存退出)
[root@node1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   25G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm
sdb               8:16   0   10G  0 disk
└─centos-root   253:0    0   25G  0 lvm  /
sdc               8:32   0    5G  0 disk
sr0              11:0    1  973M  0 rom
[root@node1 ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).

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
Building a new DOS disklabel with disk identifier 0xf1526ce9.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759
Partition 1 of type Linux and of size 5 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@node1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   25G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm
sdb               8:16   0   10G  0 disk
└─centos-root   253:0    0   25G  0 lvm  /
sdc               8:32   0    5G  0 disk
└─sdc1            8:33   0    5G  0 part
sr0              11:0    1  973M  0 rom
[root@node1 ~]# mkfs -t ext4 /dev/sdc
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=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: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@node1 ~]# mkdir /mnt/sdc
[root@node1 ~]# mount /dev/sdc /mnt/sdc
[root@node1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 866M     0  866M   0% /dev
tmpfs                    878M     0  878M   0% /dev/shm
tmpfs                    878M   87M  791M  10% /run
tmpfs                    878M     0  878M   0% /sys/fs/cgroup
/dev/mapper/centos-root   25G   18G  7.6G  70% /
/dev/sda1               1014M  225M  790M  23% /boot
tmpfs                    176M     0  176M   0% /run/user/0
/dev/sdc                 4.8G   20M  4.6G   1% /mnt/sdc
[root@node1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   35G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   25G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm
sdb               8:16   0   10G  0 disk
└─centos-root   253:0    0   25G  0 lvm  /
sdc               8:32   0    5G  0 disk /mnt/sdc
sr0              11:0    1  973M  0 rom

注意:

分区可以按主分区(primary partition)或扩展分区(extended partition)创建,主分区可以被系统直接格式化,而扩展分区则只能容纳逻辑分区。扩展分区出现是因为每个存储设备只能有4个分区,可通过创建多个扩展分区,在扩展分区内创建分区

有的版本不会自动更新linux系统新分区的生成,需要使用partprobe或hdparm,或重启系统让系统更新分区表

1.2.4 相关命令

1. df

df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。

日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。

语法格式:

df [参数] [指定文件]

常用参数:

  • -a 显示所有系统文件
  • -B <块大小> 指定显示时的块大小
  • -h 以容易阅读的方式显示
  • -H 以1000字节为换算单位来显示
  • -i 显示索引字节信息
  • -k 指定块大小为1KB
  • -l 只显示本地文件系统
  • -t <文件系统类型> 只显示指定类型的文件系统
  • -T 输出时显示文件系统类型
  • --sync 在取得磁盘使用信息前,先执行sync命令

参考实例:

[root@node1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 866M     0  866M   0% /dev
tmpfs                    878M     0  878M   0% /dev/shm
tmpfs                    878M   87M  791M  10% /run
tmpfs                    878M     0  878M   0% /sys/fs/cgroup
/dev/mapper/centos-root   25G   18G  7.6G  70% /
/dev/sda1               1014M  225M  790M  23% /boot
tmpfs                    176M     0  176M   0% /run/user/0
/dev/sdc                 4.8G   20M  4.6G   1% /mnt/sdc
[root@node1 ~]# df -t ext4 -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc        4.8G   20M  4.6G   1% /mnt/sdc
2. partprobe

partprobe命令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。如果删除文件后,仍然提示占用空间,可以用partprobe在不重启的情况下重读分区 。

语法格式:

partprobe [参数]

常用参数:

  • -d 不更新内核
  • -s 显示摘要和分区
  • -h 显示帮助信息
  • -v 显示版本信息

参考实例:
在安装Linux系统之后,创建分区并且在不重新启动机器的情况下,让系统识别这些分区(sdb6为新创建的分区):

[root@linux265 ~]# partprobe /dev/sdb6
3. mkfs

在磁盘分区上创建ext2、ext3、ext4、ms-dos、vfat文件系统,默认情况下会创建ext2。mkfs用于在设备上构建Linux文件系统,通常是硬盘分区。文件要么是设备名称(例如/dev/hda1,/dev/sdb2),要么是包含文件系统的常规文件。成功返回0,失败返回1。

实际上,mkfs只是Linux下可用的各种文件系统构建器(mkfs.fstype)的前端,在可能/sbin、/sbin/fs、/sbin/fs.d、/etc/fs、/etc/fs等多个目录中搜索特定于文件系统的生成器(编译时定义了精确的列表,但至少包含/sbin和/sbin/fs),最后在PATH环境变量中列出的目录中搜索。

mkfs.ext4 等价于 mkfs -t ext4

语法格式:

mkfs [参数]

常用参数:

  • device 预备检查的硬盘分区,例如:/dev/sda1
  • -V 详细显示模式
  • -t 给定档案系统的型式,Linux 的预设值为 ext2
  • -c 在制做档案系统前,检查该partition 是否有坏轨
  • -l bad_blocks_file 将有坏轨的block资料加到 bad_blocks_file 里面
  • block 给定 block 的大小

参考实例:
在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:

[root@linux265 ~]# mkfs -V -t msdos -c /dev/hda5 

将sda6分区格式化为ext3格式:

[root@linux265 ~]# mfks -t ext3 /dev/sda6      

1.3 逻辑卷管理器(LVM)

1. 涉及概念

  • 逻辑卷管理器-LVM(logical volume manager)是linux对磁盘分区进行管理的一种机制,能为已有的文件系统添加额外的空间。
  • 物理卷-PV:在逻辑卷的世界里,磁盘分区称为物理卷PV(physical volume),每个物理卷都映射到磁盘的特定物理分区
  • 实体延伸区块-PE(Physical Extend)是LVM最小的存储单位,一般为4MB大小,它是构成VG的基本单位,PE对于VG来说就如block对于分区来讲,它是存储数据的单元。而pe的大小并不是固定的,而是可以变化的,所以pe决定了LVM的灵活性,即能扩增,也能缩减。
  • 卷组-VG:多个物理卷组成卷组VG(volume group),逻辑卷管理器将VG视为一个物理硬盘,实际上VG可能是由分布在多个物理硬盘上的多个物理分区组成,VG提供了一个创建逻辑分区的平台,而这些逻辑分区包含了文件系统。
  • 逻辑卷-LV:整个结构中最后一层是逻辑卷LV(logical volume),为创建文件系统提供了分区环境,linux视逻辑卷为物理分区。

在这里插入图片描述

注意:

LVM缺点:单个硬盘损坏,会造成多个逻辑卷无法访问
LVM2引入快照,条带化,镜像

2. 使用LVM流程

在这里插入图片描述

① 通过fdisk创建LVM分区(更换文件系统类型):

  • fdisk /dev/sda1
  • > t(更换文件系统类型 )
  • > 5(Partition number)
  • > 8e (Partition type,Centos7 8e)
  • > p
  • > w
    参考其他文档,在n之后有t选项,笔者的系统没有,所以只能先创建分区,之后更换文件系统类型

② 创建PV

pvcreate /dev/sda1
pvdisplay /dev/sda1 #查看pv

pv相关命令

pvcreate(创建)
pvremove(删除)
pvscan(扫描)
pvs(列表)
pvdisplay(详情)
pvmove(移动数据)

示例:

[root@node1 ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.
[root@node1 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sdc1         lvm2 ---    1.00g  1.00g
[root@node1 ~]# pvdisplay
  "/dev/sdc1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3bi7tx-83U9-rI4i-UyRh-z1wM-YpSF-IzCrpo

[root@node1 ~]# pvscan
  PV /dev/sdc1                      lvm2 [1.00 GiB]
  Total: 3 [29.99 GiB] / in use: 2 [28.99 GiB] / in no VG: 1 [1.00 GiB]

③ 创建VG

vgcreate Vol2 /dev/sda1
vgdisplay Vol2  #查看vg

vg相关命令:

vgcreate(创建)
vgscan(扫描)
vgs(列表)
vgchange	#激活和禁用卷组
vgremove	#删除卷组
vgextend	#扩展卷组
vgreduce	#缩减卷组

示例:

[root@node1 ~]# vgcreate vg01 /dev/sdc1 /dev/sdc2
  Volume group "vg01" successfully created
[root@node1 ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   2   2   0 wz--n- 28.99g <2.00g
  vg01     2   0   0 wz--n-  2.99g  2.99g
[root@node1 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.99 GiB
  PE Size               4.00 MiB
  Total PE              766
  Alloc PE / Size       0 / 0
  Free  PE / Size       766 / 2.99 GiB
  VG UUID               fkjcPk-XXXR-B5bA-YA4n-KMya-UT6w-r32kzc
[root@node1 ~]# vgscan
  Reading volume groups from cache.
  Found volume group "vg01" using metadata type lvm2
  Found volume group "centos" using metadata type lvm2
[root@node1 ~]# vgextend vg01 /dev/sdc3
  Volume group "vg01" successfully extended
[root@node1 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <3.48 GiB
  PE Size               4.00 MiB
  Total PE              890
  Alloc PE / Size       0 / 0
  Free  PE / Size       890 / <3.48 GiB
  VG UUID               fkjcPk-XXXR-B5bA-YA4n-KMya-UT6w-r32kzc

[root@node1 ~]# vgreduce vg01 /dev/sdc3
  Removed "/dev/sdc3" from volume group "vg01"
[root@node1 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.99 GiB
  PE Size               4.00 MiB
  Total PE              766
  Alloc PE / Size       0 / 0
  Free  PE / Size       766 / 2.99 GiB
  VG UUID               fkjcPk-XXXR-B5bA-YA4n-KMya-UT6w-r32kzc

④ 创建LV

lvcreate -l 100%FREE -n lvtest1 Vol2
lvdisplay Vol2	#查看lv

lv相关命令:

lvcreate option_args position_args
options_args:
	-l 	#指定分配给新逻辑卷的逻辑区段数,或要用的逻辑区段百分比,或用-L指定分配给新逻辑卷的硬盘大小可以为KB,MB,GB为单位,
	-n 	#指定名称

lvextend	#扩容逻辑卷
lvreduce	#缩容逻辑卷
lvremove(删除) 
lvscan(扫描)
lvs(列表)
lvdisplay(详情)

示例:

[root@node1 ~]# lvcreate -L 1G -n lv01 vg01
  Logical volume "lv01" created.
[root@node1 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <25.00g
  swap centos -wi-a-----   2.00g
  lv01 vg01   -wi-a-----   1.00g
[root@node1 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg01/lv01
  LV Name                lv01
  VG Name                vg01
  LV UUID                Ue866C-n3VA-uRrN-ha1d-jOob-cICY-EcExZx
  LV Write Access        read/write
  LV Creation host, time node1, 2023-03-07 12:40:11 -0500
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
[root@node1 ~]# lvextend -L +500M  /dev/vg01/lv01
  Size of logical volume vg01/lv01 changed from 1.00 GiB (256 extents) to <1.49 GiB (381 extents).
  Logical volume vg01/lv01 successfully resized.
[root@node1 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <25.00g
  swap centos -wi-a-----   2.00g
  lv01 vg01   -wi-a-----  <1.49g
[root@node1 ~]# lvreduce -L -500M /dev/vg01/lv01
  WARNING: Reducing active logical volume to 1.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
  Size of logical volume vg01/lv01 changed from <1.49 GiB (381 extents) to 1.00 GiB (256 extents).
  Logical volume vg01/lv01 successfully resized.
[root@node1 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <25.00g
  swap centos -wi-a-----   2.00g
  lv01 vg01   -wi-a-----   1.00g

⑤ 创建文件系统

mkfs.ext4 /dev/Vol2/lvtest1

⑥ 挂载

mount /dev/Vol2/lvtest1 /mnt/lvtest2/

1.4 磁盘检测及修复(fsck)

计算机难免会由于某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。

那么,如果真出现了文件系统损坏的情况,有办法修复吗?可以的,对于一些小问题,使用 fsck 命令就可以很好地解决。

fsck 命令用于检查文件系统并尝试修复出现的错误。该命令的基本格式如下:

SYNOPSIS
       fsck [-lrsAVRTMNP] [-C [fd]] [-t fstype] [filesystem...]  [--] [fs-specific-options]

参数

  • -a 自动修复文件系统,不询问任何问题。
  • -A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
  • -N 不执行指令,仅列出实际执行会进行的动作。
  • -P 当搭配"-A"参数使用时,则会同时检查所有的文件系统。
  • -r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
  • -R 当搭配"-A"参数使用时,则会略过/根目录的文件系统不予检查。
  • -s 依序执行检查作业,而非同时执行。
  • -t<文件系统类型> 指定要检查的文件系统类型。
  • -T 执行fsck指令时,不显示标题信息。
  • -V 显示指令执行过程。
  • -C 显示检查分区的进度条。

注意事项:

  • 此命令通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。
  • 使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!
  • 在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。

fsck 命令在执行时,如果发现存在没有文件系统依赖的文件或目录,就会提示用户是否把它们找回来,因为这些没有文件系统依赖的文件或目录对用户来说是看不到的,换句话说,用户根本无法使用,这通常是由文件系统内部结构损坏导致的。如果用户同意找回(输入 y),fsck 命令就会把这些孤立的文件或目录放到 lost+found 目录中,并用这些文件自己对应的 inode 号来命名,以便用户查找自己丢失的文件。

因此,当用户在利用 fsck 命令修复磁盘分区以后,如果发现分区中有文件丢失,就可以到对应的 lost+found 目录中去查找,但由于无法通过文件名称分辨各个文件,这里可以利用 file 命令查看文件系统类型,进而判断出哪个是我们需要的文件。

示例:

  1. 例如,出现contains a file system with errors, check forced磁盘问题
fsck.ext4 -C0 /dev/sda1

建议根据系统提示进行修复

  1. 采用互动的修复模式
[root@localhost ~]#fsck -r /dev/sdb1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/394037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 计算属性基础知识 监听属性watch

计算属性的概念 在{{}}模板中放入太多的逻辑会让模板内容过重且难以维护。例如以下代码&#xff1a; <div id"app">{{msg.split().reverse().join()}}</div><script>const vm new Vue({el: "#app",data: {msg:我想把vue学的细一点}})&…

SAP ABAP 采购订单屏幕增强

为采购订单增加一个页标签&#xff0c;在其中放入客户自定义字段&#xff0c; 1. CMOD 增强接口&#xff1a; MM06E005 EXIT_SAPMM06E_006 为子屏幕参数传入出口&#xff08;抬头&#xff09; EXIT_SAPMM06E_008 为子屏幕参数传出出口&#xff08;抬头&#xff09; EXIT_SA…

Vue基础19之插槽

Vue基础19插槽不使用插槽App.vueCategory.vue默认插槽&#xff1a;slotApp.vueCategory.vue具名插槽App.vueCategory.vue作用域插槽App.vueCategory.vue总结插槽 不使用插槽 App.vue <template><div class"bg"><Category :listData"food"…

vue-element-admin:基于element-ui 的一套后台管理系统集成方案

文章目录一、vue-element-admin1、vue-element-admin1.1简介1.2安装2、vue-admin-template2.1简介2.2安装一、vue-element-admin 1、vue-element-admin 1.1简介 vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 GitHub地址&#xff1a;https://github.com…

redis集群模式登陆

总结redis单机模式时&#xff0c;登陆redis的命令格式&#xff1a; ./redis-cli -h 地址 -p 端口redis集群模式时&#xff0c;登陆redis的命令格式&#xff1a; ./redis-cli -h 地址 -p 端口 -c举例1&#xff1a;redis单机模式下登陆rootubuntu:/usr/local/redis/redis-7.0.0/b…

使用IPEmotion进行声学采集与分析

一 IPEmotion简介 IPEmotion作为IPETRONIK的软件产品&#xff0c;主要应用于车辆测试以及配合不同的车载和实验室测试系统&#xff0c;并满足其测量需求。通过专业化的数据采集软件IPEmotion&#xff0c;我们可以完成数据采集过程&#xff0c;包括&#xff1a;配置数据源/仪器…

信创系统借力小程序应用生态的可能性

随着国内市场需求的不断增长&#xff0c;国产操作系统的应用也开始逐步发展壮大。国产操作系统在与其他操作系统的竞争中&#xff0c;越来越受到用户的青睐。国产操作系统作为一个全新的市场&#xff0c;给应用开发带来了新的机遇和挑战。本文将从国产操作系统应用的现状分析、…

【LeetCode】1. 两数之和

题目链接&#xff1a;https://leetcode.cn/problems/two-sum/ &#x1f4d5;题目要求&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入…

[Java·算法·困难]LeetCode32. 最长有效括号

每天一题&#xff0c;防止痴呆题目示例分析思路1题解1分析思路2题解2分析思路3题解3&#x1f449;️ 力扣原文 题目 给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 示例 输入&#xff1a;s "(()&q…

开源鸿蒙南向嵌入学习笔记——NAPI框架学习(一)

开源鸿蒙南向嵌入学习笔记——NAPI框架学习&#xff08;一&#xff09; 前言——系列介绍 本系列文章主要是记录笔者在鸿蒙南向的学习与工作中的知识点笔记记录&#xff0c;其中不止会针对鸿蒙中的学习问题进行思考与记录&#xff0c;也会对涉及到的一些嵌入式等其他领域知识&…

[N0wayBack 练习题] My_enc,Euler,EasyLock,RRRRSA,EasyNumber,pwn

加入一个队,队里的练习题不少,还有WP真好My_enc原题from secret import flag import randomdef Cyber_key(LEN):Key [[] for i in range(row)]for x in range(row):for i in range(LEN):Key[x].append(random.randint(0, 2023))return Keydef Punk_enc(Key, msg):out []for l…

什么是API接口

API接口是指应用程序接口&#xff0c;是一种让不同的应用程序之间进行数据交互的方式。在现代软件开发中&#xff0c;API接口已经成为了必不可少的一部分。它们让开发者们可以将不同的功能组合在一起&#xff0c;同时也让不同的应用程序之间可以相互连接和通讯。API接口的作用A…

钓鱼客服到拿下服务器全过程(重点在于钓鱼添加img src)

重点总结 钓鱼时主动在变量中添加了字段&#xff0c;等待用户点击获取ip信息进行下一步资金盘plus呢 左看右看没啥东西&#xff0c;看看客服系统能不能打xss。 吊毛客服居然不在线&#xff0c;这套客服系统见过是whisper&#xff0c;之前审计过没有存储xss 但能通过伪造图片…

Codeforces Round 856 (Div. 2)(A~D)

A. Prefix and Suffix Array给出一个字符串的所有前缀和后缀&#xff0c;判断这个字符串是否是回文串。给出的前后缀都不是整个字符串。思路&#xff1a;如果是回文的话&#xff0c;那每一个等长的字符串也都是相同的。AC Code&#xff1a;#include <bits/stdc.h>typedef…

AQS底层源码深度剖析-BlockingQueue

目录 AQS底层源码深度剖析-BlockingQueue BlockingQueue定义 队列类型 队列数据结构 ArrayBlockingQueue LinkedBlockingQueue DelayQueue BlockingQueue API 添加元素 检索(取出)元素 BlockingQueue应用队列总览图 AQS底层源码深度剖析-BlockingQueue【重点中的重…

Spark Join大大表

Spark Join大大表分而治之拆分内表外表的重复扫描案例负隅顽抗数据分布均匀数据倾斜Task 数据倾斜Executor 数据倾斜两阶段 ShuffleExecutors 调优案例Join 大大表 : Join 的两张体量较大的事实表&#xff0c;尺寸相差在 3 倍内&#xff0c;且无法广播变量用大表 Join 大表才能…

观点丨Fortinet谈ChatGPT火爆引发的网络安全行业剧变

FortiGuard报告安全趋势明确指出“网络攻击者已经开始尝试AI手段”&#xff0c;ChatGPT的火爆之际的猜测、探索和事实正在成为这一论断的佐证。攻守之道在AI元素的加持下也在悄然发生剧变。Fortinet认为在攻击者利用ChatGPT等AI手段进行攻击的无数可能性的本质&#xff0c;其实…

动环监控4大应用价值,这个价值最大

机房管理&#xff0c;已成为企业管理和发展的首要任务。为提升机房管理的效率&#xff0c;应从空间环境、设备性能等多角度&#xff0c;对机房环境监测进行实时监控掌握相关数据参数&#xff0c;确保故障隐患及时发现&#xff0c;提高机房整体管理水平&#xff0c;降低运维难度…

Hadoop三大框架之HDFS

一、概述HDFS产生的背景及定义HDFS产生背景随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;需要一种系统来管理多台机器上的文件&#xff0c;这就是分布式文件…

一篇文章带你了解折线图

在我们的日常生活中&#xff0c;折线图随处可见&#xff0c;如医院里的心电图、股市里的股票走势、企业中的财务报表分析&#xff0c;但是折线图的具体适用情形&#xff0c;你真的了解吗&#xff1f; 折线图&#xff08;line chart&#xff09;也叫曲线图&#xff0c;用于显示数…