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?


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.