제목만 봐도 내가 바보인 걸 짐작할 수 있겠나? USB 키에 화가 나서 a 및 /null 을 사용하여 해당 파티션을 포맷하려고 했지만 dd
대신 sda1
및 sda2
파티션을 삭제했습니다.
나는 내 실수를 재빨리 깨닫고 컴퓨터를 종료하지 않았으므로 내 OS는 여전히 실행 중입니다.
나에겐 이제 나만의sda3
brw-rw---- 1 root disk 8, 0 Jun 6 19:40 /dev/sda
brw-rw---- 1 root disk 8, 3 Jun 6 19:40 /dev/sda3
cat
내가 fstab
얻는 다면
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/mint--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda2 during installation
UUID=f16adf40-841d-48de-afb6-bdbe66bd6eae /boot ext2 defaults 0 2
# /boot/efi was on /dev/sda1 during installation
UUID=2008-2EBF /boot/efi vfat umask=0077 0 1
/dev/mapper/mint--vg-swap_1 none swap sw 0 0
나는 약간 길을 잃었고 아직 UEFI, GRUB가 어떻게 작동하는지, 어떻게 fstab
작동하는지 이해하지 못했다고 말해야 합니다.
그렇게 하면 ll /boot
비어 있지 않습니다.
-rw-r--r-- 1 root root 1249214 Dec 11 15:36 abi-4.4.0-104-generic
-rw-r--r-- 1 root root 1243479 Dec 2 2016 abi-4.4.0-53-generic
-rw-r--r-- 1 root root 190517 Dec 11 15:36 config-4.4.0-104-generic
-rw-r--r-- 1 root root 189877 Dec 2 2016 config-4.4.0-53-generic
drwxr-xr-x 2 root root 1024 Jun 23 2017 efi/
drwxr-xr-x 5 root root 1024 Apr 17 23:05 grub/
-rw-r--r-- 1 root root 48667470 Apr 18 07:27 initrd.img-4.4.0-104-generic
-rw-r--r-- 1 root root 48377536 Jan 6 14:59 initrd.img-4.4.0-53-generic
drwx------ 2 root root 12288 Jun 23 2017 lost+found/
-rw-r--r-- 1 root root 182704 Jan 28 2016 memtest86+.bin
-rw-r--r-- 1 root root 184380 Jan 28 2016 memtest86+.elf
-rw-r--r-- 1 root root 184840 Jan 28 2016 memtest86+_multiboot.bin
-rw------- 1 root root 3887726 Dec 11 15:36 System.map-4.4.0-104-generic
-rw------- 1 root root 3874377 Dec 2 2016 System.map-4.4.0-53-generic
-rw------- 1 root root 7104112 Dec 11 15:36 vmlinuz-4.4.0-104-generic
-rw-r--r-- 1 root root 7065648 Dec 13 2016 vmlinuz-4.4.0-53-generic
그러나 ll /boot/efi
비어 있습니다.
2개의 파티션을 다시 마운트하거나 다시 생성해야 합니까 sda1
? sda2
EFI를 다운로드할 수 있나요? 어떡해?
답변1
사람들은 두 부류로 나뉜다. 백업을 만들고 있는 중입니다. 다른 사람들은 이미 백업을 하고 있습니다. 나는 당신이 백업을 가지고 있다고 믿습니다.
대화형을 통해 파티션 테이블을 다시 만들어야 합니다. fdisk
아직 OS가 실행 중이라면 커널 메모리에서 파티션 경계를 얻을 수 있습니다.
다음은 내 작업 시스템(UEFI가 포함된 RHEL7)의 예입니다.
# fdisk -l /dev/sda
Disk /dev/sda: 300.0 GB, 299966445568 bytes, 585871964 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disk label type: dos
Disk identifier: 0x000a146c
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 526335 262144 83 Linux
/dev/sda2 526336 1050623 262144 6 FAT16
/dev/sda3 1050624 585871359 292410368 8e Linux LVM
복원 방법 아래에 느슨한 /dev/sda1 및 /dev/sda2 정보가 있습니다. 경계 정보가 있는 파일을 찾습니다.
# find /sys -name start
/sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start
/sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start
/sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda3/start
....
sda1
커널 메모리에서 파티션 블록 시작
# cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start
2048
sda1
커널 메모리의 파티션 끝 블록
echo end $((
$(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/size) \
+ \
$(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start) \
- 1 \
))
end 526335
sda2
커널 메모리에서 파티션 블록 시작
# cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start
526336
sda2
커널 메모리의 파티션 끝 블록
echo end $((\
$(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/size)\
+ \
$(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start)\
- 1 \
))
end 1050623
이제 대화형 fdisk
. 파티션 유형을 설정하는 것을 잊지 마십시오.
파티션을 복원한 후에는 해당 파일 시스템을 확인해야 합니다. /boot/efi가 비어 있다고 쓰고 있지만 UEFI를 사용하지 않는 경우에만 비어 있어야 합니다. 패키지를 다시 설치하여 복원을 시도할 수 있습니다 grub2-efi-x64
.
보다이것복원을 계속할 주제입니다.
답변2
내 오류를 수정했습니다. 우선 나에게 중요한 모든 것을 저장하고 만약을 대비해 부팅 가능한 USB를 만들었습니다. 그런 다음 testDisk를 사용했는데 파티션을 덮어쓰지 않았기 때문에 빠른 검색(UEFI sda1 및 swupdate sda2)을 사용하여 파티션 테이블과 데이터를 복구하는 데 아무런 문제가 없었습니다. 마침내 gparted와 작동하는지 확인하고 시스템을 재부팅했습니다.
참고로 디스크와 디스크에서 testDisk를 사용하여 심층 검색을 수행하지 마십시오. 버그가 발생하여 공간이 충분하지 않다고 알려줍니다.
다행히 모든 것이 괜찮습니다. 도움을 주셔서 감사합니다.