Làm cách nào để tạo bảng phân vùng trên ổ đĩa với hệ thống tệp chiếm toàn bộ ổ đĩa?


1

Tôi có ổ cứng 4TB / dev / sdb, có hệ thống tệp NTFS được định dạng chiếm toàn bộ ổ đĩa. Nó rõ ràng không có bảng phân vùng dưới bất kỳ hình thức nào, hoặc nếu có, nó đã lỗi thời hoặc bị hỏng.

fdisk -l cho thấy điều này:

Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x2052474d

This doesn't look like a partition table
Probably you selected the wrong device.

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   ?     6579571  1924427647   958924038+  70  DiskSecure Multi-Boot
Partition 1 does not start on physical sector boundary.
/dev/sdb2   ?  1953251627  3771827541   909287957+  43  Unknown
Partition 2 does not start on physical sector boundary.
/dev/sdb3   ?   225735265   225735274           5   72  Unknown
Partition 3 does not start on physical sector boundary.
/dev/sdb4      2642411520  2642463409       25945    0  Empty

Partition table entries are not in disk order

gdisk -l cho biết chỉ có một bảng phân vùng MBR.

Ổ đĩa hoạt động tốt khi chạy trong Linux; Tôi có thể mount / dev / sdb mà không gặp vấn đề gì. Nhưng tôi muốn tải ổ đĩa bằng cách sử dụng vỏ ổ cứng trên máy windows để tôi có thể chạy chkdsktrên nó. Tuy nhiên, Windows thấy MBR này như được hiển thị trong fdisk và hiển thị 4 phân vùng, không có phân vùng nào có thể sử dụng được (không có cái nào được đánh dấu là NTFS).

Có thể chỉ cần viết một bảng phân vùng vào ổ đĩa này mà không thay đổi nội dung của hệ thống tệp NTFS, để Windows 7 có thể truy cập nó dưới dạng một phân vùng duy nhất chiếm toàn bộ ổ đĩa? Nếu vậy thì thế nào?

Chỉnh sửa: Nếu không thể đơn giản viết bảng phân vùng, có phương pháp không phá hủy nào để thực hiện cùng một mục tiêu sử dụng ổ đĩa trong Windows, có lẽ bằng cách thu nhỏ hệ thống tệp xuống vài kilobyte và sau đó viết bảng phân vùng? (tức là với gparted).


Bạn đã nhân bản ổ đĩa tôi đoán?
Ramhound

@Ramhound - Không, tôi chỉ gỡ nó ra khỏi máy linux và đặt nó vào một bao vây để sử dụng trên máy windows.
jtbr


Đầu ra fdisk trông giống hệt như câu trả lời cho Windows không gắn kết siêu mềm USB NTFS như được đề xuất bởi @KamilMaciorowski, cùng tên, bắt đầu, kết thúc, chặn, Id ... sẽ là một bản sao trừ khi nó không tạo ra MBR / GPT mới - Kamil có vẻ như có thể có chỗ để viết MBR thông thường trên VBR của superflopy (cả 512 byte), và nó sẽ không gây hại cho hệ thống tập tin?
Xen2050

@ Xen2050 Tôi nghĩ rằng nó sẽ gây hại cho hệ thống tập tin. Theo như tôi biết thì NTFS lưu trữ một số siêu dữ liệu trong VBR. Bạn chỉ có thể thay đổi đoạn bảng phân vùng và nó sẽ can thiệp vào mã bootstrap NTFS (và tôi đoán người ta có thể sống với điều đó vì có chuỗi văn bản ở đó, kiểm tra câu trả lời của tôi cho câu hỏi được liên kết). Vấn đề là đĩa ở đây là 4 TB và có lẽ nó cần GPT; và GPT yêu cầu (tôi nghĩ) một cung cấp đầy đủ như một MBR kế thừa và các 33*512byte ngay sau đó, và cũng là một không gian tương tự ở cuối đĩa.
Kamil Maciorowski

Câu trả lời:


3

Trong tình huống cụ thể này, bạn không thể ghi MBR vào ổ đĩa này vì bạn sẽ mất tất cả dữ liệu trên đó. Cách tốt nhất là sao chép tất cả dữ liệu ở nơi khác và sau đó phân vùng ổ đĩa trên Windows với diskmgmt.msc.


+1. Tôi có thể nghĩ ra một giải pháp (chưa được kiểm tra) sử dụng ntfsresize, ddrescue --reversevà vd gdisk. Trước khi thực hiện bất kỳ thủ thuật nào như vậy, người ta nên sao lưu dữ liệu. Sau đó, có bản sao lưu của tôi, tôi sẽ chọn giải pháp của bạn đơn giản hơn nhiều.
Kamil Maciorowski

Có khả năng GParted sẽ làm những gì bạn muốn, nhưng tôi không chắc chắn, bạn sẽ phải thử. Di chuyển phân vùng 1MB về phía trước ngay từ đầu và sử dụng testdisk để ghi MBR là đủ tốt.
sở thích

Tôi có dữ liệu được sao lưu ở nhiều nơi khác nhau, nhưng không được sao chép và tôi không có ổ 4TB dự phòng nằm xung quanh để sao chép dữ liệu (cộng với đó là rất nhiều dữ liệu cần sao chép). Lý do tôi cố gắng làm điều này ngay từ đầu là vì tôi lo ngại về sự hỏng hóc của hệ thống tập tin và vì vậy việc sao chép có thể không hoạt động. Khi gặp rủi ro, tôi đoán tôi sẽ bỏ mặc mọi thứ. Có vẻ như bài học là luôn luôn, luôn luôn phân vùng, chỉ trong trường hợp.
jtbr

0

Về nguyên tắc, bạn có thể làm một cái gì đó như thế này:

  1. Sử dụng ntfsresizeđể thu nhỏ hệ thống tập tin hiện có với một lượng nhỏ (theo lý thuyết, 2081 cung là đủ, nhưng tôi sẽ làm ít nhất 2 MiB để an toàn).
  2. Chuyển hệ thống tập tin "vào" đĩa theo một số lượng cố định. 1 MiB nên tối ưu. Đây là phần khó khăn, vì bạn đang đọc và ghi vào cùng một thiết bị và điều bắt buộc là phải thực hiện theo cách không ghi đè lên dữ liệu trước khi sao chép. Nói cách khác, bạn phải sao chép bắt đầu từ cuối hệ thống tập tin, thay vì cách tiếp cận phổ biến hơn để làm việc đó từ đầu. Chính thức, tôi không biết một công cụ sẽ làm điều này, ngoài các công cụ thay đổi kích thước phân vùng như GParted - và AFAIK, tất cả các công cụ đó đều yêu cầu phải có bảng phân vùng. Một kịch bản sử dụng ddđể làm điều này sẽ có thể, và không khó để viết, nhưng nó sẽ yêu cầu kiểm tra cẩn thận.
  3. Tạo một bảng phân vùng trên đĩa cùng với một phân vùng duy nhất bắt đầu tại điểm bắt đầu mới cho hệ thống tệp và kết thúc tại nơi hệ thống tệp kết thúc.

Trừ khi bạn có thể tìm thấy một công cụ sẽ thực hiện bước # 2 với một cái gì đó tương tự như an toàn, sao chép dữ liệu ra khỏi đĩa, tạo phân vùng và sau đó khôi phục dữ liệu, như gợi ý, có thể là giải pháp tốt nhất. Điều này thậm chí có thể nhanh hơn cả việc cố gắng thay đổi toàn bộ hệ thống tập tin, đặc biệt nếu hệ thống tập tin hầu hết trống rỗng. Ngay cả khi bạn tìm thấy một công cụ để thực hiện bước 2 (hoặc toàn bộ quy trình) trong một lần, tôi thực sự khuyên bạn nên tạo bản sao lưu trước khi tiếp tục, vì quy trình tôi đã nêu ở đây khá nguy hiểm.

Là một bình luận phụ, có vẻ như bạn đã sử dụng đĩa NTFS này độc quyền trong Linux. Bạn đã phát hiện ra một lý do thuyết phục để không làm điều này: Các công cụ bảo trì NTFS của Linux là thô sơ nhất. Nếu bạn dự định truy cập dữ liệu độc quyền từ Linux, tôi khuyên bạn nên sao lưu, tạo phân vùng, tạo (các) hệ thống tệp gốc Linux và khôi phục dữ liệu về (các) hệ thống tệp gốc Linux mới. Điều này sẽ cung cấp cho bạn khả năng tốt hơn để sửa chữa thiệt hại hệ thống tệp từ bên trong Linux, mà không liên quan đến Windows.


Cảm ơn. Lý do tôi sử dụng NTFS là mẫu số ít phổ biến nhất giữa Linux và MacOS, mà tôi khởi động kép. Những hiểm họa của nền tảng hoạt động ...
jtbr

Đối với khởi động kép Linux / macOS, tôi khuyên dùng HFS +. Đó là hệ thống tệp gốc của Mac và Linux cung cấp hỗ trợ HFS + tốt hơn nhiều so với hỗ trợ NTFS. Một điều phức tạp của cách tiếp cận này đối với NTFS là các quyền, trớ trêu thay, đơn giản hơn với NTFS vì nó không tương thích với cả hai hệ điều hành bạn đang sử dụng. Xem câu hỏi Askubfox này và câu trả lời của tôi cho nó để biết chi tiết về cách làm cho nó hoạt động.
Rod Smith

Cuối cùng tôi đã có một ổ đĩa thay thế và muốn xem liệu tôi có thể làm cho nó hoạt động trên ổ đĩa cũ không (kế hoạch của tôi là sử dụng ddrescue --reversecho bước 2). Thật không may, nó đã thất bại ở bước 1 vì ntfsresize tìm thấy các vấn đề về tính nhất quán của tệp mà ntfsfix không thể khắc phục (nó nói là sử dụng chkdisk /f, đó là toàn bộ lý do tôi muốn chuyển nó sang một phân vùng ở vị trí đầu tiên. và tránh NTFS nếu có thể.
jtbr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.