Dữ liệu của bạn vượt quá 300 MB đầu tiên hoặc lâu hơn vẫn có thể khôi phục được, nhưng bạn phải rất cẩn thận về cách tiến hành. Đặc biệt, bạn sẽ muốn giảm thiểu số lượng bạn ghi vào đĩa này và lưu tất cả dữ liệu có thể phục hồi ở nơi khác để cài đặt lại sau này. May mắn thay, bạn có một phân vùng EFI lớn hơn 300 MB ở đầu đĩa nên phân vùng HĐH chính có thể không bị ảnh hưởng và có thể phục hồi 100%. Trong trường hợp này, bạn có thể chỉ cần định dạng lại phân vùng EFI và cài đặt lại bộ tải khởi động.
Đầu tiên, như @Ponjar đã thảo luận, bạn cần sửa các bảng phân vùng. Các lệnh bạn đã chạy chỉ hiển thị các bảng phân vùng hiện có khi chúng được tìm thấy. Bỏ qua bảng phân vùng MBR. Điều đó xuất phát từ hình ảnh ISO bạn đã ghi vào đầu đĩa và không chính xác. Thay vào đó, bạn cần khôi phục một bản sao của bảng phân vùng GPT mà lệnh đầu tiên đã phát hiện. May mắn thay, GPT lưu trữ một bản sao lưu của toàn bộ bảng phân vùng ở cuối đĩa và gdisk có thể đọc nó thành công. Bạn sẽ cần phải làm theo một thủ tục tương tự như thế này để khôi phục GPT dự phòng:
vỏ gdisk sẽ mở ngay bây giờ. Nhập 'r' để chọn tùy chọn khôi phục.
Từ tùy chọn khôi phục, nhập 'b', để khôi phục tiêu đề GPT từ thứ cấp (sao lưu), sau đó nhập 'c' để khôi phục bảng phân vùng GPT từ thứ cấp (sao lưu).
Sau đó chọn 'v', rồi chọn 'w' để xác minh và ghi vào đĩa.
# sudo gdisk /dev/sda
GPT fdisk (gdisk) phiên bản 1.0.1
Quét bảng phân vùng:
MBR: bảo vệ
BSD: không có
APM: không có
GPT: hiện tại
Đã tìm thấy GPT hợp lệ với MBR bảo vệ; sử dụng GPT.
Lệnh (? để được trợ giúp): r
Lệnh khôi phục/chuyển đổi (? để được trợ giúp): b
Lệnh khôi phục/chuyển đổi (? để được trợ giúp): c
Cảnh báo! Điều này có thể sẽ làm những điều kỳ lạ nếu bạn đã chuyển đổi MBR thành
Biểu mẫu GPT và chưa lưu GPT! Tiếp tục? (Có/Không): Có
Lệnh khôi phục/chuyển đổi (? để được trợ giúp): v
Không có vấn đề được tìm thấy. 3437 khu vực miễn phí (1,7 MiB) có sẵn trong 2
các phân đoạn, trong đó lớn nhất có kích thước 2014 (1007,0 KiB).
Lệnh khôi phục/chuyển đổi (? để được trợ giúp): w
Khi bạn đã khôi phục bảng phân vùng, bạn sẽ cần khôi phục hệ thống tệp hệ điều hành chính. Nếu đúng là dd chưa bao giờ đến được phân vùng này, thì có thể không còn nhiều việc phải làm nữa. Hãy thử gắn nó vào hình ảnh khôi phục của bạn:
Sudo mount -r /dev/sda2 /mnt
Tôi khuyên bạn nên sử dụng -r ở đây để gắn kết chỉ đọc trong khi kiểm tra dữ liệu.Nếu nó được gắn kết và bạn thấy tất cả dữ liệu của mình hiện tại, nó có thể tốt cho việc sử dụng lại mà không cần cài đặt lại. Nếu mọi thứ còn nguyên vẹn, bạn có thể sửa lỗi khởi động bằng cách cài đặt lại phân vùng hệ thống EFI. Điều đó sẽ cần phải được định dạng lại từ đầu:
Sudo mkfs -t béo -F 32 /dev/sda1
Bạn cũng sẽ cần phải đọc-ghi hệ thống tập tin gốc của mình:
Sudo mount -o remount,rw /mnt
Sau đó làm theo hướng dẫn này để cài đặt lại GRUB trên phân vùng hệ thống EFI:
Sudo mount /dev/sda1 /mnt/boot/efi
cho tôi trong /dev /dev/pts /proc /sys /run; thực hiện sudo mount -B $i /mnt$i; xong
sudo chroot /mnt
cài đặt grub/dev/sda
cập nhật-grub
Tuy nhiên, nếu bạn thấy rằng bạn không thể gắn kết hệ thống tệp gốc, bạn có thể bị mất một lượng nhỏ dữ liệu và sẽ cần khôi phục siêu khối trên hệ thống tệp gốc của mình. Dựa trên bảng phân vùng và kích thước tệp bạn đã đề cập trong câu hỏi, đây không phải là trường hợp, nhưng nếu đúng như vậy, quy trình này sẽ giúp tìm ra siêu khối. Chạy mkfs -n
trên hệ thống tập tin gốc của bạn để khám phá vị trí của các siêu khối dự phòng.
sudo mkfs -t ext4 -n /dev/sda2
Một số siêu khối đầu tiên có thể bị ghi đè, nhưng các siêu khối sau này phải nguyên vẹn. Dựa trên các siêu khối mà nó hiển thị, bạn có thể thử và gắn một cái với cái này:
Sudo mount -o sb=131072 -r /dev/sda2 /mnt
Giả sử rằng 131072 là một trong những siêu khối do mkfs đề xuất và chưa bị ghi đè. Nếu dữ liệu trong /mnt có vẻ hợp lý và bạn có thể tìm thấy một số tệp, bạn có thể thử sửa hệ thống tệp bằng cách này:
Sudo fsck -t ext4 -b 131072/dev/sda2
Tuy nhiên, tại thời điểm bạn đang sử dụng các siêu khối thay thế, có thể bạn sẽ muốn sao lưu bất kỳ dữ liệu nào bạn có thể lưu và thực hiện cài đặt lại đầy đủ sau đó.