1. 슈퍼블럭(superblock) 복구 실습
① 슈퍼블럭 복구 실습할 파일시스템 선택
# mount /dev/sdb1 /raid0
# df -h /raid0
[root@server1 ~]# mount /dev/sdb1 /raid0
[root@server1 ~]# df -h /raid0
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 ext4 477M 2.3M 445M 1% /raid0
# cp -L -r /etc/sysconfig/* /raid0
-L : --dereference , 심볼릭 링크를 따름
-r : 하위 디렉토리 및 파일까지 모두 복사
→ 파일들을 생성
② backup superblock 번호 확인 및 block size 확인
▷ backup superblock 번호 확인
- blocksize가 4096인 경우
[root@server1 ~]# dumpe2fs /dev/sdb1 | grep -i superblock
dumpe2fs 1.45.6 (20-Mar-2020)
Primary superblock at 0, Group descriptors at 1-1
Backup superblock at 32768, Group descriptors at 32769-32769
Backup superblock at 98304, Group descriptors at 98305-98305
Backup superblock at 163840, Group descriptors at 163841-163841
Backup superblock at 229376, Group descriptors at 229377-229377
- blocksize가 1096인 경우
[root@server1 ~]# dumpe2fs /dev/sdb1 | grep -i superblock
dumpe2fs 1.45.6 (20-Mar-2020)
Primary superblock at 1, Group descriptors at 2-5
Backup superblock at 8193, Group descriptors at 8194-8197
Backup superblock at 24577, Group descriptors at 24578-24581
Backup superblock at 40961, Group descriptors at 40962-40965
Backup superblock at 57345, Group descriptors at 57346-57349
Backup superblock at 73729, Group descriptors at 73730-73733
Backup superblock at 204801, Group descriptors at 204802-204805
Backup superblock at 221185, Group descriptors at 221186-221189
Backup superblock at 401409, Group descriptors at 401410-401413
▷block size 확인
# dumpe2fs /dev/sdb1 | grep -i 'block size'
[root@server1 ~]# dumpe2fs /dev/sdb1 | grep -i 'block size'
dumpe2fs 1.45.6 (20-Mar-2020)
Block size: 1024
Block size : 1024 → (첫번째 백업 슈퍼블럭 : 8193)
Block size : 4096 → (첫번째 백업 슈퍼블럭 : 32768)
③ /raid0 언마운트
▷(백업)
# mkdir -p /backup
# cd /radi0
# tar -czvf /backup/raid.tar.gz
▷ /raid0 umount
# cd
# umount /raid0
# df -h
→ /raid0의 정보가 보이지 않음
④ backup superblock으로 superblock 복원
# dd if=/dev/zero of=/dev/sdb1 count=1 bs=1024 seek=1
if : input file, of : output file, bs : block size
[root@server1 ~]# dd if=/dev/zero of=/dev/sdb1 count=1 bs=1024 seek=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 3.1768e-05 seconds, 32.2 MB/s
# mount /dev/sdb1 /raid0
[root@server1 ~]# mount /dev/sdb1 /raid0
mount: /raid0: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
→ 에러 메세지 확인
# fsck -y /dev/sdb1
[root@server1 ~]# fsck -y /dev/sdb1
fsck from util-linux 2.32.1
e2fsck 1.45.6 (20-Mar-2020)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
/dev/sdb1 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 blocks count wrong for group #0 (3821, counted=3820).
Fix? yes
---------------(중략)---------------------
# mount /dev/sdb1 /raid0
# df -h /raid0
[root@server1 ~]# df -h /raid0
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 ext4 991M 2.6M 922M 1% /raid0
2. 정리
1) superblock 자동 복구 방법에 대한 과정
# mount /dev/sdb1 /raid0
# cp -L -r /etc/sysconfig/* /raid0
# umount /raid0
# dd if=/dev/zero of=/dev/sdb1 bs=1024 count=1 seek=1
# mount /dev/sdb1 /raid0 -> 에러 메세지 확인
# fsck -y /dev/sda3
# mount /dev/deb1 /raid0
2) superblock 수동 복구 방법에 대한 과정
# mount /dev/sdb1 /raid0
# cp -L -r /etc/sysconfig/* /raid0
# umount /raid0
# dd if=/dev/zero of=/dev/sdb1 bs=1024 count=1 seek=1
# mount /dev/sdb1 /raid0 -> 에러 메세지 확인
# dump2fs /dev/sdb1 | grep -i superblock
# e2fsck -b 8193 /dev/sda3
# mount /dev/sdb1 /raid0
# df -h
'Linux > 2) 리눅스 서버 관리자 과정' 카테고리의 다른 글
| 10_2 User & Group Administration - 사용자 관리 명령어 (0) | 2021.08.31 |
|---|---|
| 10_1 User & Group Administration - 사용자 정보 파일 (0) | 2021.08.31 |
| 3_3 File System Administration - 파일 시스템 점검 및 사용량 점검 (0) | 2021.08.29 |
| 3_2 File System Administration - 파일 시스템 생성 (0) | 2021.08.29 |
| 3_1 File System Administration - 파일시스템(File System) 정의와 종류 (0) | 2021.08.26 |