Có khả năng khôi phục bảng phân vùng, nhưng nó yêu cầu 2 điều kiện được đáp ứng:
- Bạn chưa khởi động lại máy.
- Ổ đĩa đã được sử dụng tại thời điểm bảng được thay đổi.
Làm thế nào điều này hoạt động là kernel giữ bố cục phân vùng trong bộ nhớ. Nếu một phân vùng đang được sử dụng, nó cần biết phân vùng bắt đầu từ đâu, vì vậy nó sẽ từ chối tải lại bảng mới cho đến khi nó không còn được sử dụng.
Làm như thế nào:
Tới /sys/block/sda
. Bên trong đó bạn sẽ thấy một thư mục cho mỗi phân vùng ( sda1
, sda2
, vv). Bên trong mỗi cái đó là một tập tin được gọi start
và size
(vì vậy /sys/block/sda/sda1/start
). Nếu bạn tạo lại bảng phân vùng của mình bằng các vị trí và kích thước bắt đầu chính xác này, bạn sẽ ổn.
Lưu ý rằng nó không giữ kiểu phân vùng. Linux không quan tâm đến thông tin này. Vì vậy, sau khi tạo lại, bạn sẽ phải nhớ loại phân vùng được đặt thành (NTFS hoặc bất cứ thứ gì).
Thí dụ
Đĩa gốc:
# fdisk -l / dev / sdc
Đĩa / dev / sdc: 8006 MB, 8006926336 byte, 15638528 cung
Đơn vị = các lĩnh vực 1 * 512 = 512 byte
Kích thước ngành (logic / vật lý): 512 byte / 512 byte
Kích thước I / O (tối thiểu / tối ưu): 512 byte / 512 byte
Định danh đĩa: 0x000ce29c
Khởi động thiết bị Hệ thống Id khối khởi động
/ dev / sdc1 2048 2099199 1048576 83 Linux
/ dev / sdc2 2099200 15638527 6769664 83 Linux
# gắn kết | grep sdc
/ dev / sdc2 trên / mnt / tmp loại xfs (rw)
# mèo / mnt / tmp / thế giới
xin chào
Xóa bảng phân vùng
# fdisk / dev / sdc
Chào mừng bạn đến với fdisk (produc-linux 2.22.2).
Thay đổi sẽ chỉ còn trong bộ nhớ, cho đến khi bạn quyết định viết chúng.
Hãy cẩn thận trước khi sử dụng lệnh ghi.
Lệnh (m để được giúp đỡ): d
Số phân vùng (1-4): 1
Phân vùng 1 bị xóa
Lệnh (m để được giúp đỡ): d
Đã chọn phân vùng 2
Phân vùng 2 bị xóa
Lệnh (m để được giúp đỡ): p
Đĩa / dev / sdc: 8006 MB, 8006926336 byte, 15638528 cung
Đơn vị = các lĩnh vực 1 * 512 = 512 byte
Kích thước ngành (logic / vật lý): 512 byte / 512 byte
Kích thước I / O (tối thiểu / tối ưu): 512 byte / 512 byte
Định danh đĩa: 0x000ce29c
Khởi động thiết bị Hệ thống Id khối khởi động
Lệnh (m để được giúp đỡ): w
Bảng phân vùng đã được thay đổi!
Gọi ioctl () để đọc lại bảng phân vùng.
CẢNH BÁO: Đọc lại bảng phân vùng không thành công với lỗi 16: Thiết bị hoặc tài nguyên bận.
Nhân vẫn sử dụng bảng cũ. Bảng mới sẽ được sử dụng tại
lần khởi động lại tiếp theo hoặc sau khi bạn chạy partprobe (8) hoặc kpartx (8)
Đồng bộ hóa đĩa.
Lưu ý rằng nó vẫn được gắn kết và có thể truy cập:
# mèo / mnt / tmp / thế giới
xin chào
Nhận giảm giá
# cd / sys / lớp / khối / sdc
# ls
căn chỉnh_offset thiết bị @ event_poll_msecs power / ro nô lệ /
bdi @ Discard_alocation ext_range queue / sdc1 / stat
chủ sở hữu sự kiện khả năng / phạm vi sdc2 / hệ thống con @
dev event_async inflight kích thước có thể tháo rời uevent
# mèo sdc1 / bắt đầu
2048
# mèo sdc1 / kích thước
2097152
# mèo sdc2 / bắt đầu
2099200
# mèo sdc2 / kích thước
13539328
Khôi phục bảng phân vùng
# fdisk / dev / sdc
Chào mừng bạn đến với fdisk (produc-linux 2.22.2).
Thay đổi sẽ chỉ còn trong bộ nhớ, cho đến khi bạn quyết định viết chúng.
Hãy cẩn thận trước khi sử dụng lệnh ghi.
Lệnh (m để được giúp đỡ): n
Loại phân vùng:
p chính (0 chính, 0 mở rộng, 4 miễn phí)
e mở rộng
Chọn (p mặc định): p
Số phân vùng (1-4, mặc định 1): 1
Khu vực đầu tiên (2048-15638527, mặc định 2048): 2048
Khu vực cuối cùng, + ngành hoặc + kích thước {K, M, G} (2048-15638527, mặc định 15638527): +2097151
Phân vùng 1 loại Linux và kích thước 1 GiB được đặt
Lệnh (m để được giúp đỡ): n
Loại phân vùng:
p chính (1 chính, 0 mở rộng, 3 miễn phí)
e mở rộng
Chọn (p mặc định): p
Số phân vùng (1-4, mặc định 2): 2
Khu vực đầu tiên (2099200-15638527, mặc định 2099200): 2099200
Khu vực cuối cùng, + ngành hoặc + kích thước {K, M, G} (2099200-15638527, mặc định 15638527): +13539327
Phân vùng 2 loại Linux và có kích thước 6,5 GiB được đặt
Lệnh (m để được giúp đỡ): p
Đĩa / dev / sdc: 8006 MB, 8006926336 byte, 15638528 cung
Đơn vị = các lĩnh vực 1 * 512 = 512 byte
Kích thước ngành (logic / vật lý): 512 byte / 512 byte
Kích thước I / O (tối thiểu / tối ưu): 512 byte / 512 byte
Định danh đĩa: 0x000ce29c
Khởi động thiết bị Hệ thống Id khối khởi động
/ dev / sdc1 2048 2099199 1048576 83 Linux
/ dev / sdc2 2099200 15638527 6769664 83 Linux
Lệnh (m để được giúp đỡ): w
Bảng phân vùng đã được thay đổi!
Gọi ioctl () để đọc lại bảng phân vùng.
CẢNH BÁO: Đọc lại bảng phân vùng không thành công với lỗi 16: Thiết bị hoặc tài nguyên bận.
Nhân vẫn sử dụng bảng cũ. Bảng mới sẽ được sử dụng tại
lần khởi động lại tiếp theo hoặc sau khi bạn chạy partprobe (8) hoặc kpartx (8)
Đồng bộ hóa đĩa.
!! Lưu ý rằng khi chỉ định khu vực cuối cùng, chúng tôi sử dụng kích thước - 1. !!
xác minh
Chúng ta hãy ngắt kết nối ổ đĩa, chạy partprobe
để báo cho kernel chọn bảng mới, sau đó kết nối lại và xác minh chúng tôi vẫn nhận được tệp của chúng tôi.
# umount / mnt / tmp /
# partprobe / dev / sdc
# gắn kết / dev / sdc2 / mnt / tmp
# mèo / mnt / tmp / thế giới
xin chào
testdisk
.