Как создать таблицу разделов на диске с файловой системой, занимающей весь диск?

835
jtbr

У меня есть жесткий диск объемом 4 ТБ / dev / sdb, который имеет отформатированную файловую систему NTFS, занимающую весь диск. Очевидно, что у него нет таблицы разделов, или, если она есть, она устарела или повреждена.

fdisk -l показывает это:

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 говорит, что присутствует только таблица разделов MBR.

Привод работает нормально при работе под Linux; Я могу смонтировать / dev / sdb без проблем. Но я хочу загрузить диск, используя корпус жесткого диска на Windows-машине, чтобы я мог работать chkdskна нем. Windows, однако, видит эту MBR, как показано на fdisk, и показывает 4 раздела, ни один из которых не может использоваться (ни один даже не помечен как NTFS).

Можно ли просто записать таблицу разделов на этот диск без изменения содержимого файловой системы NTFS, чтобы Windows 7 могла обращаться к ней как к одному разделу, занимающему весь диск? Если так, то как?

Изменить: Если невозможно просто написать таблицу разделов, есть ли какой-нибудь неразрушающий метод для достижения той же цели использования диска под Windows, возможно, путем сокращения файловой системы на несколько килобайт, а затем записи таблицы разделов? (то есть с gparted).

1
Вы клонировали диск, я полагаю? Ramhound 7 лет назад 0
@Ramhound - Нет, я просто удалил его из машины Linux и положил в корпус для использования на машине Windows. jtbr 7 лет назад 0
Связанный: [Windows не монтирует USB NTFS superfloppy] (https://superuser.com/q/1060252/432690), [Использование конфигурации с одним разделом диска] (https://superuser.com/q/1181320/432690 ). Kamil Maciorowski 7 лет назад 1
Вывод fdisk выглядит точно так же, как ответ на [Windows не монтирует USB NTFS superfloppy] (https://superuser.com/questions/1060252/windows-does-not-mount-usb-ntfs-superfloppy) в соответствии с предложением @KamilMaciorowski , то же имя, начало, конец, блоки, Id ... будет дубликатом, за исключением того, что он не создает новую MBR / GPT - Камил, похоже, может быть место для записи обычной MBR поверх VBR суперфлопии (оба 512 байт), есть, и это не повредит файловой системе? Xen2050 7 лет назад 0
@ Xen2050 Думаю, это повредит файловой системе. Насколько я знаю, NTFS хранит некоторые метаданные в VBR. Вы можете изменить только фрагмент таблицы разделов, и это будет мешать загрузочному коду NTFS (и я думаю, что с этим можно было бы справиться, потому что там есть текстовые строки, проверьте мой ответ на связанный вопрос). Проблема в том, что диск здесь 4 ТБ, и, вероятно, ему нужен GPT; и GPT требует (я думаю) один полный сектор как устаревшая MBR и `33 * 512 'байтов сразу после, а также аналогичное пространство в конце диска. Kamil Maciorowski 7 лет назад 0
@KamilMaciorowski Я "просмотрел" ваш другой ответ ;-) Я думал, что VBR отделен от NTFS, но я думаю, что это часть его. Я почти уверен, что у меня есть 32 ГБ USB-накопителя с MBR, так что этот должен быть в порядке с MBR, очень жаль, что он не оставил несколько свободных блоков до официального запуска NTFS (или есть) Xen2050 7 лет назад 0
Вы можете изменить размер раздела немного (или больше, в зависимости от того, насколько он пуст), используя Linux. Затем скопируйте его на другой диск, но пропустите немного секторов, например, 4096 байт, на целевом диске (т.е. сместите копию на эту величину). Затем используйте Testdisk на новом диске, чтобы восстановить таблицу разделов. :) Andrea Lazzarotto 7 лет назад 0

2 ответа на вопрос

3
pbies

В этой конкретной ситуации вы не можете записать MBR на этот диск, потому что вы потеряете все данные на нем. Лучшим способом было бы скопировать все данные в другое место, а затем разбить диск в Windows с помощью diskmgmt.msc.

+1. Я могу придумать решение (непроверенное), в котором используются `ntfsresize`,` ddrescue --reverse` и, например, `gdisk`. Перед выполнением любого такого трюка рекомендуется сделать резервную копию данных. Затем, имея все равно резервную копию, я бы выбрал ваше решение, которое намного проще. Kamil Maciorowski 7 лет назад 0
Есть вероятность, что GParted сделает то, что вы хотите, но я не уверен, вам придется попробовать. Перемещение раздела на 1 МБ вперед в его начале и использование testdisk для записи MBR должно быть достаточно хорошим. pbies 7 лет назад 0
У меня есть резервные копии данных в разных местах, но они не клонированы, и у меня нет запасного накопителя емкостью 4 ТБ, который можно было бы клонировать (плюс это большое количество данных для копирования). Причина, по которой я пытаюсь сделать это, в первую очередь потому, что я обеспокоен повреждением файловой системы, и поэтому копирование может не работать в любом случае. Учитывая риски, я думаю, я просто оставлю все как есть. Кажется, что урок заключается в том, чтобы всегда, всегда на всякий случай. jtbr 7 лет назад 0
0
Rod Smith

В принципе, вы можете сделать что-то вроде этого:

  1. Используйте, ntfsresizeчтобы уменьшить существующую файловую систему на небольшое количество (теоретически, 2081 секторов должно быть достаточно, но я бы сделал по крайней мере 2 МиБ для безопасности).
  2. Сдвиньте файловую систему «на» диск на некоторое фиксированное количество. 1 МиБ должен быть оптимальным. Это сложная часть, так как вы будете читать и записывать на одно и то же устройство, и обязательно, чтобы это было сделано таким образом, чтобы не перезаписывать данные перед их копированием. Другими словами, вам придется копировать, начиная с конца файловой системы, а не с более распространенным подходом делать это с самого начала. Случайно, я не знаю инструмента, который будет это делать, кроме инструментов изменения размера раздела, таких как GParted - и AFAIK, все эти инструменты требуют наличия таблицы разделов. Сценарий, который используется ddдля этого, был бы возможен, и его не очень сложно написать, но он потребовал бы тщательного тестирования.
  3. Создайте таблицу разделов на диске вместе с одним разделом, который начинается в новой начальной точке файловой системы и заканчивается там, где заканчивается файловая система.

Если вы не можете найти инструмент, который будет выполнять шаг № 2 с чем-то, напоминающим безопасность, копирование данных с диска, создание разделов, а затем восстановление данных, как предполагает pbies, вероятно, будет лучшим решением. Это может быть даже быстрее, чем пытаться сдвинуть всю файловую систему, особенно если файловая система в основном пуста. Даже если вы найдете инструмент для выполнения шага № 2 (или всей процедуры) за один раз, я настоятельно рекомендую создать резервную копию, прежде чем продолжить, поскольку описанная здесь процедура довольно опасна.

Как побочный комментарий, похоже, что вы использовали этот диск NTFS исключительно в Linux. Вы обнаружили одну вескую причину не делать этого: инструменты поддержки NTFS в Linux в лучшем случае зачаточны. Если вы планируете получать доступ к данным исключительно из Linux, я рекомендую вам выполнить резервное копирование, создать раздел (ы), создать собственную файловую систему (ы) Linux и восстановить данные в новую файловую систему (ы) Linux. Это даст вам лучшую возможность восстанавливать повреждения файловой системы изнутри Linux, без использования Windows.

Благодарю. Причина, по которой я использую NTFS, состоит в том, что это наименее общий знаменатель между Linux и MacOS, который я использую для двойной загрузки. Опасности работы кроссплатформенного ... jtbr 7 лет назад 0
Для двойной загрузки Linux / macOS я рекомендую HFS +. Это родная файловая система Mac, и Linux обеспечивает гораздо лучшую поддержку HFS +, чем поддержка NTFS. Единственное осложнение этого подхода по сравнению с NTFS - это разрешения, которые, по иронии судьбы, проще с NTFS, потому что он * менее * совместим с * обеими * операционными системами, которые вы используете. См. [Этот вопрос Askubuntu и мой ответ на него] (https://askubuntu.com/questions/315078/how-to-manage-permissions-on-a-shared-volume-for-osx-and-ubuntu) для получения подробной информации. о том, как заставить его работать. Rod Smith 7 лет назад 0
Я наконец получил запасной диск и хотел посмотреть, смогу ли я заставить его работать на старом (я планировал использовать `ddrescue --reverse` для шага 2). К сожалению, это не удалось на шаге 1, потому что ntfsresize обнаружил проблемы с согласованностью файлов, которые ntfsfix не может исправить (говорится, что он использует `chkdisk / f`, и именно поэтому я и хотел переместить его в раздел. Извлеченный урок. Использование разделов , а не сырые диски, и по возможности избегайте NTFS. jtbr 6 лет назад 0

Похожие вопросы