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 等 | 光驱不能分区 |
查看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
如果要挂载的硬盘,需要划分为多个分区,则需要创建分区,然后进行挂载,这个时候需要使用fdisk命令
Linux fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。
语法
# 更改分区表
fdisk [options] <disk>
# 列出分区表
fdisk [options] -l <disk>
# 给出分区大小
fdisk -s <partition>
该命令支持的选项有:
选项 | 说明 |
---|---|
-b |
扇区大小(512、1024、2048或4096) |
-c |
兼容模式:“dos”或“nondos”(默认) |
-h |
打印此帮助文本 |
-u |
显示单位:“cylinders”(柱面)或“sectors”(扇区,默认) |
-v |
打印版本信息 |
-C |
指定柱面数 |
-H |
指定磁头数 |
-S |
指定每个磁道的扇区数 |
当进入分区界面后,可以输入如下命令进行操作:
命令 | 命令说明 |
---|---|
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
通过fdisk -l
和lsblk
,我们可以知道那些磁盘是空闲并未使用
如果要为指定硬盘创建分区,命令格式如下:
# 语法
fdisk 指定磁盘
# 示例,给磁盘 /dev/sdb 进行分区,/dev/sdb 是查询出来的磁盘名
fdisk /dev/sdb
创建分区基本流程:
>
p(显示设备详细信息)>
n(创建新分区)>
1(partition number)>
回车,即选择默认(first sector)>
+20G(last sector)>
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,或重启系统让系统更新分区表
df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。
日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。
语法格式:
df [参数] [指定文件]
常用参数:
--
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
partprobe
命令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。如果删除文件后,仍然提示占用空间,可以用partprobe在不重启的情况下重读分区 。
语法格式:
partprobe [参数]
常用参数:
参考实例:
在安装Linux系统之后,创建分区并且在不重新启动机器的情况下,让系统识别这些分区(sdb6为新创建的分区):
[root@linux265 ~]# partprobe /dev/sdb6
在磁盘分区上创建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 [参数]
常用参数:
参考实例:
在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:
[root@linux265 ~]# mkfs -V -t msdos -c /dev/hda5
将sda6分区格式化为ext3格式:
[root@linux265 ~]# mfks -t ext3 /dev/sda6
任务 | PV 阶段 | VG 阶段 | LV 阶段 | filesystem-XFS | filesystem-EXT4 |
---|---|---|---|---|---|
搜寻(scan) | pvscan | vgscan | lvscan | lsblk, blkid | lsblk, blkid |
建立(create) | pvcreate | vgcreate | lvcreate | mkfs.xfs | mkfs.ext4 |
列出(display) | pvdisplay | vgdisplay | lvdisplay | df, mount | df, mount |
增加(extend) | vgextend | lvextend (lvresize) | xfs_growfs | resize2fs | |
减少(reduce) | vgreduce | lvreduce (lvresize) | 不支援 | resize2fs | |
删除(remove) | pvremove | vgremove | lvremove | umount, 重新格式化 | umount, 重新格式化 |
改变容量(resize) | lvresize | xfs_growfs | resize2fs | ||
改变属性(attribute) | pvchange | vgchange | lvchange | /etc/fstab, remount | /etc/fstab, remount |
注意:
LVM缺点:单个硬盘损坏,会造成多个逻辑卷无法访问
LVM2引入快照,条带化,镜像
① 通过fdisk创建LVM分区(更换文件系统类型):
>
t(更换文件系统类型 )>
5(Partition number)>
8e (Partition type,Centos7 8e)>
p>
w② 创建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/
什么是 LV 磁盘快照啊?快照就是将当时的系统信息记录下来,就好像照相记录一般! 未来若有任何资料更动了,则原始资料会被搬移到快照区,没有被更动的区域则由快照区与文件系统共享。
底下我们针对传统 LV 磁盘进行快照的建置,大致流程为:
# 1. 先观察 VG 还剩下多少剩余容量
[root@study ~]# vgdisplay vbirdvg
....(其他省略)....
Total PE 252
Alloc PE / Size 226 / 3.53 GiB
Free PE / Size 26 / 416.00 MiB
# 就只有剩下 26 个 PE 了!全部分配给 vbirdsnap1 啰!
# 2. 利用 lvcreate 建立 vbirdlv 的快照区,快照被取名为 vbirdsnap1,且给予 26 个 PE
[root@study ~]# lvcreate -s -l 26 -n vbirdsnap1 /dev/vbirdvg/vbirdlv
Logical volume "vbirdsnap1" created
# 上述的指令中最重要的是那个 -s 的选项!代表是 snapshot 快照功能之意!
# -n 后面接快照区的装置名称, /dev/.... 则是要被快照的 LV 完整檔名。
# -l 后面则是接使用多少个 PE 来作为这个快照区使用。
[root@study ~]# lvdisplay /dev/vbirdvg/vbirdsnap1
--- Logical volume ---
LV Path /dev/vbirdvg/vbirdsnap1
LV Name vbirdsnap1
VG Name vbirdvg
LV UUID I3m3Oc-RIvC-unag-DiiA-iQgI-I3z9-0OaOzR
LV Write Access read/write
LV Creation host, time study.centos.vbird, 2015-07-28 19:21:44 +0800
LV snapshot status active destination for vbirdlv
LV Status available
# open 0
LV Size 2.50 GiB # 原始碟,就是 vbirdlv 的原始容量
Current LE 160
COW-table size 416.00 MiB # 这个快照能够纪录的最大容量!
COW-table LE 26
Allocated to snapshot 0.00% # 目前已经被用掉的容量!
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:11
[root@study ~]# mkdir /srv/snapshot1
[root@study ~]# mount -o nouuid /dev/vbirdvg/vbirdsnap1 /srv/snapshot1
[root@study ~]# df -Th /srv/lvm /srv/snapshot1
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vbirdvg-vbirdlv xfs 2.5G 111M 2.4G 5% /srv/lvm
/dev/mapper/vbirdvg-vbirdsnap1 xfs 2.5G 111M 2.4G 5% /srv/snapshot1
# 有没有看到!这两个咚咚竟然是一模一样喔!我们根本没有动过
# /dev/vbirdvg/vbirdsnap1 对吧!不过这里面会主动记录原 vbirdlv 的内容!
# 1. 先将原本的 /dev/vbirdvg/vbirdlv 内容作些变更,增增减减一些目录吧!
[root@study ~]# df -Th /srv/lvm /srv/snapshot1
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vbirdvg-vbirdlv xfs 2.5G 111M 2.4G 5% /srv/lvm
/dev/mapper/vbirdvg-vbirdsnap1 xfs 2.5G 111M 2.4G 5% /srv/snapshot1
[root@study ~]# cp -a /usr/share/doc /srv/lvm
[root@study ~]# rm -rf /srv/lvm/log
[root@study ~]# rm -rf /srv/lvm/etc/sysconfig
[root@study ~]# df -Th /srv/lvm /srv/snapshot1
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vbirdvg-vbirdlv xfs 2.5G 146M 2.4G 6% /srv/lvm
/dev/mapper/vbirdvg-vbirdsnap1 xfs 2.5G 111M 2.4G 5% /srv/snapshot1
[root@study ~]# ll /srv/lvm /srv/snapshot1
/srv/lvm:
total 60
drwxr-xr-x. 887 root root 28672 Jul 20 23:03 doc
drwxr-xr-x. 131 root root 8192 Jul 28 00:12 etc
/srv/snapshot1:
total 16
drwxr-xr-x. 131 root root 8192 Jul 28 00:12 etc
drwxr-xr-x. 16 root root 4096 Jul 28 00:01 log
# 两个目录的内容看起来已经不太一样了喔!检测一下快照 LV 吧!
[root@study ~]# lvdisplay /dev/vbirdvg/vbirdsnap1
--- Logical volume ---
LV Path /dev/vbirdvg/vbirdsnap1
....(中间省略)....
Allocated to snapshot 21.47%
# 鸟哥仅列出最重要的部份!就是全部的容量已经被用掉了 21.4% 啰!
# 2. 利用快照区将原本的 filesystem 备份,我们使用 xfsdump 来处理!
[root@study ~]# xfsdump -l 0 -L lvm1 -M lvm1 -f /home/lvm.dump /srv/snapshot1
# 此时你就会有一个备份资料,亦即是 /home/lvm.dump 了!
# 3. 将 vbirdsnap1 卸除并移除 (因为里面的内容已经备份起来了)
[root@study ~]# umount /srv/snapshot1
[root@study ~]# lvremove /dev/vbirdvg/vbirdsnap1
Do you really want to remove active logical volume "vbirdsnap1"? [y/n]: y
Logical volume "vbirdsnap1" successfully removed
[root@study ~]# umount /srv/lvm
[root@study ~]# mkfs.xfs -f /dev/vbirdvg/vbirdlv
[root@study ~]# mount /dev/vbirdvg/vbirdlv /srv/lvm
[root@study ~]# xfsrestore -f /home/lvm.dump -L lvm1 /srv/lvm
[root@study ~]# ll /srv/lvm
drwxr-xr-x. 131 root root 8192 Jul 28 00:12 etc
drwxr-xr-x. 16 root root 4096 Jul 28 00:01 log
# 是否与最初的内容相同啊!这就是透过快照来还原的一个简单的方法啰!
RAID简称为独立冗余磁盘阵列
(Redundant Arrays of Independent Disks,RAID),把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术,组成磁盘阵列的不同方式称为RAID级别。
常用的RAID级别:RAID0、RAID1、RAID5、RAID6、RAID10等
RAID0(至少需要两块硬盘):如图所示,把多块物理硬盘通过软件或硬件的方式串联在一起,组成一个大的卷组。连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输速率,但它没有数据冗余
优点:
有效提升硬盘数据的吞吐速度
缺点:
不具备数据备份和错误修复能力,数据是分开存放的。任意一块硬盘发生故障将导致整个系统的数据收到破坏。数据安全性得不到保障
RAID 1 (镜像存储)通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上残生互为备份的数据
RAID 1在数据安全性和可用性非常高,当其中一块盘失效,另一块能自动切换顶替,不需要重组数据,但是相对的在读写效率上会有所损失,而且成本也是最高的。
缺点:
成本昂贵,是磁盘阵列中单位成本最高的一种方式。
实际空间的使用率低,增加了系统计算功能的负载。相当于实际空间使用率只有50%(两块硬盘)。33%的空间利用率(三块硬盘)
优点:
保障了数据的安全性。如备份和错误修复能力。
当其中一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用
RAID5(最少三块硬盘):RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。
RAID5把校验码信息分布到各个磁盘上。例如:总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的奇偶校验信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上),一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验信息去恢复损坏的数据
RAID5最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块同时损坏了,那数据就无法恢复了。
磁盘利用率:(N-1)/N
共N份数据在N盘上循环均衡存储,N块盘同时读写,读写性很高,但由于校验机制,写性能不是很高,可靠性高
RAID 6需要N(N>=4)块盘组成阵列,利用率为(N-2)/N
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块
两个独立的奇偶系统使不同的算法,及时两块磁盘失效也不影响数据,但是比RAID 5有更大的写损失
RAID 6
N(偶数,N>=4)块盘两两镜像后,在组合成一个RAID 0
读写性能和RAID 1+0 一样
假设有 n 颗磁盘组成的 RAID 设定喔!
项目 | RAID0 | RAID1 | RAID10 | RAID5 | RAID6 |
---|---|---|---|---|---|
最少磁盘数 | 2 | 2 | 4 | 3 | 4 |
最大容错磁盘数(1) | 无 | n-1 | n/2 | 1 | 2 |
数据安全性(1) | 完全没有 | 最佳 | 最佳 | 好 | 比RAID5好 |
理论写入效能(2) | n | 1 | n/2 | ||
理论读出效能(2) | n | n | n | ||
可用容量(3) | n | 1 | n/2 | n-1 | n-2 |
一般应用 | 强调效能但数据不重要的环境 | 资料与备份 | 服务器、云系统常用 | 资料与备份 | 资料与备份 |
注:因为 RAID5, RAID6 读写都需要经过 parity 的计算器制,因此读/写效能都不会刚好满足于使用的磁盘数量喔!
另外,根据使用的情况不同,一般推荐的磁盘阵列等级也不太一样。以鸟哥为例,在鸟哥的跑空气质量模式之后的输出数据,动辄几百 GB 的单一大文件数据, 这些情况鸟哥会选择放在 RAID6 的数组环境下,这是考虑到数据保全与总容量的应用,因为 RAID 6 的效能已经足以应付模式读入所需的环境。
近年来鸟哥也比较积极在作一些云程序环境的设计,在云环境下,确保每个虚拟机能够快速的反应以及提供数据保全是最重要的部份! 因此效能方面比较弱的 RAID5/RAID6 是不考虑的,总结来说,大概就剩下 RAID10 能够满足云环境的效能需求了。在某些更特别的环境下, 如果搭配 SSD 那才更具有效能上的优势哩!
[root@zabbix-svr-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sr0 11:0 1 973M 0 rom
② 新磁盘分区
[root@zabbix-svr-2 ~]# fdisk /dev/sde
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 0x46a761e9.
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):
First sector (2048-4194303, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303):
Using default value 4194303
Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@zabbix-svr-2 ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@zabbix-svr-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 2G 0 part
sdc 8:32 0 2G 0 disk
└─sdc1 8:33 0 2G 0 part
sdd 8:48 0 2G 0 disk
└─sdd1 8:49 0 2G 0 part
sde 8:64 0 2G 0 disk
└─sde1 8:65 0 2G 0 part
sr0 11:0 1 973M 0 rom
③ 安装软件
在Linux系统中目前以MD(Multiple Devices)
虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上。
mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具
[root@zabbix-svr-2 ~]# yum install mdadm -y
[root@zabbix-svr-2 ~]# mdadm -V
mdadm - v4.1 - 2018-10-01
④ mdadm基本语法
mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[def]1 -x1 /dev/sdg1
-C:表示新建
-v:显示创建过程中的详细信息
-a yes:--auto,表示如果有什么设备文件没有存在的话就自动创建,可省略
-l:指定RAID的级别,-l5 表示创建RAID5
-n:指定使用几块硬盘创建RAID,n3表示使用三块盘
-x:指定使用几块盘做RAID的热备用盘,x1表示保留一块备用
mdadm -Cv /dev/md0 -l0 -n2 /dev/sd[bc]1
创建新的RAID /dev/md0,显示创建过程详细信息, RAID级别为0,使用2块盘sdb1,sdc1
[root@zabbix-svr-2 ~]# mdadm -Cv /dev/md0 -l0 -n2 /dev/sd[bc]1
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@zabbix-svr-2 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Mar 7 21:53:05 2023
Raid Level : raid0
Array Size : 4188160 (3.99 GiB 4.29 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Mar 7 21:53:05 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : zabbix-svr-2:0 (local to host zabbix-svr-2)
UUID : 6df48c8c:f8403d03:a11178a6:6e3b71f8
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
[root@zabbix-svr-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 2G 0 part
└─md0 9:0 0 4G 0 raid0
sdc 8:32 0 2G 0 disk
└─sdc1 8:33 0 2G 0 part
└─md0 9:0 0 4G 0 raid0
sdd 8:48 0 2G 0 disk
└─sdd1 8:49 0 2G 0 part
sde 8:64 0 2G 0 disk
└─sde1 8:65 0 2G 0 part
sr0 11:0 1 973M 0 rom
[root@zabbix-svr-2 ~]# ll /dev/md0
brw-rw---- 1 root disk 9, 0 Mar 7 21:53 /dev/md0
[root@zabbix-svr-2 ~]# mkdir /mnt/md0
[root@zabbix-svr-2 ~]# mkfs -t ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
262144 inodes, 1047040 blocks
52352 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 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 (16384 blocks): done
Writing superblocks and filesystem accounting information: done
[root@zabbix-svr-2 ~]# mount /dev/md0 /mnt/md0
[root@zabbix-svr-2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.7G 16G 10% /
/dev/sda1 1014M 138M 877M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/md0 3.9G 16M 3.7G 1% /mnt/md0
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1
[root@zabbix-svr-2 ~]# mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 2094080K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@zabbix-svr-2 ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Mar 7 22:00:31 2023
Raid Level : raid1
Array Size : 2094080 (2045.00 MiB 2144.34 MB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Mar 7 22:00:41 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : zabbix-svr-2:1 (local to host zabbix-svr-2)
UUID : a0557b0c:c64b9988:7e4f4c31:22946840
Events : 17
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
此处可以先跳到下文"4.3 删除磁盘阵列",查看如何删除已创建的磁盘阵列
mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[bc]1 -x1 /dev/sdd1
[root@zabbix-svr-2 ~]# mdadm -C -v /dev/md5 -l5 -n2 /dev/sd[bc]1 -x1 /dev/sdd1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2094080K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@zabbix-svr-2 ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Mar 7 22:14:54 2023
Raid Level : raid5
Array Size : 2094080 (2045.00 MiB 2144.34 MB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Mar 7 22:15:04 2023
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : zabbix-svr-2:5 (local to host zabbix-svr-2)
UUID : e86ea2fa:72e897d1:536562d3:39b16051
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
3 8 33 1 active sync /dev/sdc1
2 8 49 - spare /dev/sdd1
mdadm -C -v /dev/md6 -l6 -n4 /dev/sd[bc]1 -x1 /dev/sd[de]1
[root@zabbix-svr-2 ~]# mdadm -C -v /dev/md6 -l6 -n4 /dev/sd[bcde]1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2094080K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md6 started.
[root@zabbix-svr-2 ~]# mdadm -D /dev/md6
/dev/md6:
Version : 1.2
Creation Time : Tue Mar 7 22:21:19 2023
Raid Level : raid6
Array Size : 4188160 (3.99 GiB 4.29 GB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Mar 7 22:21:29 2023
State : clean, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Resync Status : 96% complete
Name : zabbix-svr-2:6 (local to host zabbix-svr-2)
UUID : 757e5863:93c1d500:21a7b9a4:125010b5
Events : 15
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 65 3 active sync /dev/sde1
先创建两个RAID 1
mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[bc]1 ##创建RAID 1 md0
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1 ##创建RAID 1 md1
再组合2个RAID 1为RAID 0
mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1 ##将RAID md0和md1组合创建RAID 10
[root@zabbix-svr-2 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md1 : active raid1 sde1[1] sdd1[0]
2094080 blocks super 1.2 [2/2] [UU]
md0 : active raid0 sdc1[1] sdb1[0]
4188160 blocks super 1.2 512k chunks
unused devices: <none>
[root@zabbix-svr-2 ~]# umount /dev/md0
[root@zabbix-svr-2 ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@zabbix-svr-2 ~]# mdadm --zero-superblock /dev/sdb1 /dev/sdc1
[root@zabbix-svr-2 ~]# mdadm --zero-superblock /dev/sdb1 /dev/sdc1
mdadm: Unrecognised md component device - /dev/sdb1
mdadm: Unrecognised md component device - /dev/sdc1
执行一遍之后可以在执行一遍, 这里意思是未识别组件,说明我们已经将它删除了
vim /etc/fstab
vim /etc/mdadm.conf ##进入配置进行修改
如果没有/etc/mdadm.conf跳过即可,有就将对应的RAID文件删除
[root@zabbix-svr-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 2G 0 part
sdc 8:32 0 2G 0 disk
└─sdc1 8:33 0 2G 0 part
sdd 8:48 0 2G 0 disk
└─sdd1 8:49 0 2G 0 part
sde 8:64 0 2G 0 disk
└─sde1 8:65 0 2G 0 part
sr0 11:0 1 973M 0 rom
没有前面创建的md0,md1就可以了
计算机难免会由于某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。
那么,如果真出现了文件系统损坏的情况,有办法修复吗?可以的,对于一些小问题,使用 fsck 命令就可以很好地解决。
fsck 命令用于检查文件系统并尝试修复出现的错误。该命令的基本格式如下:
SYNOPSIS
fsck [-lrsAVRTMNP] [-C [fd]] [-t fstype] [filesystem...] [--] [fs-specific-options]
参数
/
根目录的文件系统不予检查。注意事项:
fsck 命令在执行时,如果发现存在没有文件系统依赖的文件或目录,就会提示用户是否把它们找回来,因为这些没有文件系统依赖的文件或目录对用户来说是看不到的,换句话说,用户根本无法使用,这通常是由文件系统内部结构损坏导致的。如果用户同意找回(输入 y),fsck 命令就会把这些孤立的文件或目录放到 lost+found 目录中,并用这些文件自己对应的 inode 号来命名,以便用户查找自己丢失的文件。
因此,当用户在利用 fsck 命令修复磁盘分区以后,如果发现分区中有文件丢失,就可以到对应的 lost+found 目录中去查找,但由于无法通过文件名称分辨各个文件,这里可以利用 file 命令查看文件系统类型,进而判断出哪个是我们需要的文件。
示例:
contains a file system with errors, check forced
磁盘问题fsck.ext4 -C0 /dev/sda1
建议根据系统提示进行修复
[root@localhost ~]#fsck -r /dev/sdb1