本次模拟 通过fdisk分区的磁盘头损坏,造成文件目录无法使用。 如果是asm磁盘,可通过asm相关命令进行修复
[root@pgtest testdata]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_firsouler-lv_root
9.5G 7.1G 2.0G 79% /
tmpfs 996M 72K 996M 1% /dev/shm
/dev/sda1 477M 42M 410M 10% /boot
/dev/mapper/pgvg-lvpg
19G 4.4G 14G 25% /pgdata
/dev/sdc1 5.8G 12M 5.5G 1% /testdata
[root@pgtest testdata]# ls
analyze_new_cluster.sh gp2020.cfg lost+found ojdbc6.jar
[root@pgtest testdata]#
[root@pgtest testdata]# cd /
[root@pgtest /]# dd if=/dev/zero of=/dev/sdc1 bs=1024 count=8
8+0 records in
8+0 records out
8192 bytes (8.2 kB) copied, 0.00100304 s, 8.2 MB/s
#再次查看,testdata目录下找不到文件 ,df -h也无法查看
[root@pgtest /]# cd /testdata/
[root@pgtest testdata]# ls
[root@pgtest testdata]# cd /
[root@pgtest /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_firsouler-lv_root
9.5G 7.1G 2.0G 79% /
tmpfs 996M 72K 996M 1% /dev/shm
/dev/sda1 477M 42M 410M 10% /boot
/dev/mapper/pgvg-lvpg
19G 4.4G 14G 25% /pgdata
[root@pgtest /]# umount /testdata/
[root@pgtest /]# mount /testdata/
mount: wrong fs type, bad option, bad superblock on /dev/sdc1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
如上所示,提示有问题。
通过fsck命令修复磁盘(注意,fstab需要有相关配置信息)
[root@pgtest /]# fsck /dev/sdc1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
fsck.ext4: Superblock invalid, trying backup blocks...
/dev/sdc1 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free inodes count wrong for group #0 (8181, counted=8178).
Fix<y>? yes
Free inodes count wrong (393205, counted=393202).
Fix<y>? yes
/dev/sdc1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdc1: 14/393216 files (0.0% non-contiguous), 60526/1572354 blocks
[root@pgtest /]# mount /testdata/
[root@pgtest /]# cd /testdata/
[root@pgtest testdata]# ls
analyze_new_cluster.sh gp2020.cfg lost+found ojdbc6.jar
[root@pgtest testdata]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_firsouler-lv_root
9.5G 7.1G 2.0G 79% /
tmpfs 996M 72K 996M 1% /dev/shm
/dev/sda1 477M 42M 410M 10% /boot
/dev/mapper/pgvg-lvpg
19G 4.4G 14G 25% /pgdata
/dev/sdc1 5.8G 12M 5.5G 1% /testdata
[root@pgtest testdata]#
修复完成后,文件系统正常。
附
fsck 工具介绍
- -a:自动修复文件系统,不询问任何问题;
- -A:依照
/etc/fstab
配置文件的内容,检查文件内所列的全部文件系统; - -N:不执行指令,仅列出实际执行会进行的动作;
- -P:当搭配
"-A"
参数使用时,则会同时检查所有的文件系统; - -r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
- -R:当搭配
"-A"
参数使用时,则会略过/目录的文件系统不予检查; - -s:依序执行检查作业,而非同时执行;
- -t<文件系统类型>:指定要检查的文件系统类型;
- -T:执行
fsck
指令时,不显示标题信息;
#备份文件位置
ls -lrt /etc/lvm/backup/
#查看vg创建信息
vgcfgrestore --list vg_backup
#查看损坏的pv信息
pvscan
#通过备份修复 pv元数据
pvcreate --uuid "9a2Lzl-B1Z0-zaR7-jgLj-9g72-u7PD-aYcjgh" --restorefile /etc/lvm/backup/vg_backup /dev/sdd
#修复vg信息
vgcfgrestore -f /etc/lvm/backup/vg_backup vg_backup
#激活vg vgscan
vgchange -a y vg_test