Как мне отформатировать диск NTFS в CentOS 7, чтобы я также мог использовать его в Windows?

841
Blackwood

У нас есть система LIDAR, которая собирает данные на местах. Компьютеры, которые обрабатывают необработанные данные, являются компьютерами Windows, поэтому мы используем NTFS. Однако сама система LIDAR работает под управлением CentOS 7. Обычно это не проблема. Мы форматируем коллекционные диски в NTFS в Windows или используем GParted (CentOS или Ubuntu). CentOS монтирует и пишет в них очень хорошо, и Windows может читать их.

Наши клиенты хотели бы иметь возможность отформатировать накопители в системе LIDAR, используя CentOS. Я думал, что это будет тривиальная задача, и написал сценарий. Сценарий работает для форматирования дисков, и CentOS запишет на них данные. Однако после использования скрипта Windows больше не будет распознавать диски.

Если GParted может заставить это работать, то должно быть что-то не так с тем, как я их форматирую. Моя процедура заключается в следующем:

umount <mountPoint> 

Это гарантирует, что диск не установлен.

(echo o; echo n; echo p; echo 1; echo ; echo ; echo w) | fdisk /dev/<driveLetter> 

Это использует fdisk для записи новой таблицы разделов, выполнив следующие действия:

  • o: создать новую пустую таблицу разделов DOS
  • n: добавить новый раздел
    • p: создать основной раздел
    • 1: Раздел 1
    • первый сектор по умолчанию (отображается как 65535 на диске 480 ГБ)
    • последний сектор по умолчанию (отображается как 937703087 на диске 480 ГБ)
  • w: записать таблицу на диск

Затем...

mkfs.ntfs -f -L <driveLabel> /dev/<driveLetter>1 

Это форматирует раздел диска 1 в NTFS.

mount -a 

Это перемонтирует накопители.

Windows не видит диски, отформатированные таким образом. Однако, если я использую AOMEI в Windows, он увидит диски, хотя я не могу их использовать. Единственная подсказка, которую он мне дает, заключается в том, что он добавляет *:метку диска. Так что вместо <driveLabel>этого видно *:<driveLabel>.

Может кто-нибудь сказать мне, если в моем сценарии есть изъян или я что-то упустил?

2
Мало мыслей; Я не могу проверить их сейчас, поэтому просто комментарий: (1) Тип раздела может иметь значение, `0x07` для NTFS. (2) Я думаю, что одна из моих ОС Windows (старая) была привередлива и требовала, чтобы первый раздел запускался в секторе `63` (десятичный). Я не мог использовать этот начальный сектор напрямую, я создал новый раздел с большим номером, затем переместил его начало в экспертное меню (`x`,` b`). Я не помню, должен ли раздел быть установлен как активный. Kamil Maciorowski 5 лет назад 0
Я вспомнил [этот ответ] (https://superuser.com/a/1219639/432690), это может быть актуально. Kamil Maciorowski 5 лет назад 0

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

1
Blackwood

Основная проблема, похоже, связана с типом раздела, который ищет Microsoft (по крайней мере, в Windows 7). Это все еще возможно при использовании fdisk, но у меня не было времени для дальнейшего тестирования.

Я использовал gdisk вместо fdisk и смог заставить его работать.

Если кому-то еще это интересно, вот мой модифицированный скрипт:

umount <mountPoint>  (echo o; echo y; echo n; echo 1; echo ; echo ; echo 0700; echo w; echo y) | gdisk /dev/<driveLetter>  partprobe  umount <mountPoint>  mkfs.ntfs -f -L <driveLabel> /dev/<driveLetter>1  mount -a 

Используются следующие параметры gdisk:

  • o: создать новую пустую таблицу разделов GUID (GPT)
  • y: проверить
  • n: добавить новую таблицу разделов
  • 1: номер раздела
  • первый сектор по умолчанию (отображается как 2048)
  • последний сектор по умолчанию
  • 0700: GUID для основных данных Microsoft
  • w: записать таблицу на диск и выйти
  • y: проверить

После нескольких тестов, кажется, работает отлично.

Ну, вы не указали, какую Windows вы имели в виду. :) Таблица разделов DOS - безопасный выбор, устаревший стандарт. Я бы не сказал, что `fdisk` в Linux устарел; это просто инструмент, разработанный для работы со старой схемой разбиения. GPT имеет свои преимущества, но для отдельного раздела данных на жестком диске объемом 480 ГБ таблица разделов DOS также подходит. Вы указали «Основные данные Microsoft» в GPT. Вы пробовали таблицу разделов DOS с типом раздела `0x07` хотя бы для любопытства? Я не удивлюсь, если это будет единственное, что вы пропустили. Kamil Maciorowski 5 лет назад 0
После прочтения я думаю, что вы правы. Я проверю это, когда у меня будет шанс, и отредактирую свой ответ. Если это все, то мой ответ технически неверен как есть. Blackwood 5 лет назад 0
Я снова попытался использовать fdisk с таблицей разделов DOS, с типом раздела 0x07 и начальными секторами как по умолчанию, так и с 63. Хотя он все еще не работает. Я не говорю, что это невозможно с помощью fdisk. Я просто не мог заставить его работать за 15 минут игры с ним, что я делал. Кстати, я надеялся, что версия Windows будет неоднозначной для этой задачи. Зная Microsoft, я уверен, что это не так. Я в настоящее время на Windows 7, но в будущем мне также нужно будет работать на 10. Спасибо за помощь. Вы помогли направить меня в правильном направлении, и я кое-что узнал. Blackwood 5 лет назад 0
Хорошо, тогда. Q & A проголосовал за ваши исследования. Kamil Maciorowski 5 лет назад 0

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