Jak sformatować dysk NTFS w CentOS 7, aby móc go także używać w systemie Windows?

2

Mamy system LIDAR, który zbiera dane w terenie. Komputery przetwarzające nieprzetworzone dane to komputery z systemem Windows, więc używamy NTFS. Jednak sam system LIDAR uruchamia CentOS 7. Zwykle nie stanowi to problemu. Formatujemy dyski kolekcji na NTFS w systemie Windows lub używamy GParted (CentOS lub Ubuntu). CentOS montuje i zapisuje je w porządku, a Windows może je odczytać.

Nasi klienci chcieliby mieć możliwość formatowania napędów kolekcji w systemie LIDAR za pomocą CentOS. Myślałem, że to będzie trywialne zadanie i napisałem skrypt. Skrypt działa w celu formatowania dysków, a CentOS zapisuje do nich dane. Jednak po użyciu skryptu system Windows nie rozpoznaje dysków.

Jeśli GParted może to zrobić, to musi być coś nie tak z ich sposobem formatowania. Moja procedura jest następująca:

umount <mountPoint>

Zapewnia to, że dysk nie jest zamontowany.

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

Używa fdisk do napisania nowej tablicy partycji, wykonując następujące czynności:

  • o: Utwórz nową pustą tabelę partycji DOS
  • n: Dodaj nową partycję
    • p: Utwórz partycję podstawową
    • 1: Partycja 1
    • domyślny pierwszy sektor (pokazujący 65535 na dysku 480 GB)
    • domyślny ostatni sektor (pokazany jako 937703087 na dysku 480 GB)
  • w: Zapisz tabelę na dysku

Następnie...

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

To formatuje partycję dysku 1 na NTFS.

mount -a

Powoduje to ponowne podłączenie dysków pamięci.

System Windows nie widzi dysków sformatowanych w ten sposób. Jeśli jednak użyję AOMEI w systemie Windows, zobaczą dyski, nawet jeśli nie mogę ich użyć. Jedyną wskazówką, która mi daje, jest to, że dodaje *: do etykiety napędu. Więc zamiast <driveLabel> to pokazuje *:<driveLabel>.

Czy ktoś może mi powiedzieć, czy w moim skrypcie jest błąd, czy coś mi brakuje?

Blackwood
źródło
Kilka myśli; Nie mogę ich teraz przetestować, więc tylko komentarz: (1) Typ partycji może być istotny, 0x07 dla NTFS. (2) Myślę, że jeden z moich systemów operacyjnych Windows (stary) był wybredny i wymagał uruchomienia pierwszej partycji w sektorze 63 (dziesiętny). Nie mogłem bezpośrednio użyć tego sektora startowego, utworzyłem nową partycję o większej liczbie, a następnie przesunąłem jej początek w menu eksperta x, b ). Nie pamiętam, czy partycję trzeba było ustawić jako aktywną.
Kamil Maciorowski
Oddzwoniłem ta odpowiedź , może to być istotne.
Kamil Maciorowski

Odpowiedzi:

1

Podstawowym problemem wydaje się być typ partycji, którego szuka Microsoft (przynajmniej w Windows 7). Nadal może to być możliwe przy użyciu fdisk, ale nie miałem czasu na dalsze testy.

Skończyłem używając gdisk zamiast fdisk i udało mi się go uruchomić.

Jeśli ktoś jest zainteresowany, oto mój zmodyfikowany skrypt:

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

Użyte opcje gdisk są następujące:

  • o: Utwórz nową pustą tabelę partycji GUID (GPT)
  • y: Sprawdź
  • n: Dodaj nową tabelę partycji
  • 1: Numer partycji
  • domyślny pierwszy sektor (pokazany jako 2048)
  • domyślny ostatni sektor
  • 0700: GUID dla podstawowych danych Microsoft
  • w: Zapisz tabelę na dysku i zakończ
  • y: Sprawdź

Po wielu testach wydaje się działać świetnie.

Blackwood
źródło
Nie określiłeś systemu Windows, który miałeś na myśli. :) Tabela partycji DOS jest bezpiecznym wyborem, starszym standardem. Nie powiedziałbym fdisk pod Linuksem jest przestarzały; to tylko narzędzie zaprojektowane do pracy ze starym schematem partycjonowania. GPT ma swoje zalety, ale dla pojedynczej partycji danych na dysku twardym o pojemności 480 GB tablica partycji DOS również jest w porządku. Podałeś „podstawowe dane Microsoft” w GPT. Wypróbowałeś tabelę partycji DOS z 0x07 typ partycji, jeśli tylko dla ciekawości? Nie byłbym zaskoczony, gdyby to była jedyna rzecz, którą przegapiłeś.
Kamil Maciorowski
Po przeczytaniu więcej myślę, że możesz mieć rację. Przetestuję to, gdy dostanę szansę i zredaguję moją odpowiedź. Jeśli to wszystko, to moja odpowiedź jest technicznie błędna.
Blackwood
Próbowałem ponownie użyć fdisk z tabelą partycji DOS, typem partycji 0x07 i początkowymi sektorami zarówno domyślnymi, jak i 63. Nadal jednak nie działa. Nie mówię, że jest to niemożliwe w fdisk. Po prostu nie mogłem zmusić go do pracy w ciągu 15 minut zabawy. Przy okazji miałem nadzieję, że wersja systemu Windows będzie niejednoznaczna dla tego zadania. Znając Microsoft, choć na pewno tak nie jest. Obecnie pracuję w systemie Windows 7, ale w przyszłości będę potrzebował go również do pracy z 10. Dziękuję za pomoc. Pomogłeś mi wskazać właściwy kierunek i nauczyłem się kilku rzeczy.
Blackwood
OK, więc. Pytania i odpowiedzi dotyczące Twojego wysiłku badawczego.
Kamil Maciorowski