어떤 도구를 사용하여 하드 드라이브를 UDF로 포맷해야합니까?


32

( " UDF의 파티션 ID / 파일 시스템 유형은 무엇입니까? "에 대한 후속 조치 입니다. )

하드 드라이브를 UDF로 포맷하는 두 가지 방법을 알고 있습니다.

  • Windows Vista 이상 : " format x: /fs:UDF"( /q! 사용하지 마십시오 !)
  • 리눅스 : " mkudffs --media-type=hd --blocksize=512 /dev/sdx"

문제는 '다른'OS가 디스크를 포맷 된 것으로 전혀 인식하지 못한다는 것입니다. 어떤 명령을 시도하든 단순히 마운트를 거부합니다.

Windows와 Linux에서 모두 사용할 수 있도록 하드 드라이브를 UDF로 포맷하려면 어떻게해야합니까?

편집 : 명령을 업데이트하면 결과가 어느 OS에서나 작동합니다.


UDF는 광학 미디어 용으로 설계되었습니다. 아마도 문제일까요?
Chopper3

1
당신이주는 명령은 리눅스에서 훌륭하게 작동합니다. Karmic으로 포맷했으며 Windows 7과 Karmic에서 읽고 쓸 수 있습니다.
Matt Joiner

4
남은 파티션 테이블과의 혼동을 피하기 위해 MDF를 먼저 제로화 (dd if = / dev / zero of = / dev / sdx bs = 512 count = 1)하는 것을 잊지 마십시오 (UDF는 첫 번째 섹터를 사용하지 않기 때문에).
CesarB


1
Skolima에게 감사합니다. 안녕 안녕 FAT32. UDF 버전 2.01과 512 블록 크기에만 집중해야하며 Linux와 Windows에서 공유되는 완벽한 하드 디스크 파티션이 있습니다.
MarcH

답변:


17

/qWindows 에서 스위치 를 사용하는 것이 범인 이라는 것이 밝혀졌습니다 . 즉, '빠른 포맷'을 활성화합니다. 즉 포맷 프로세스는 디스크에 기록 할 때마다 백그라운드에서 계속 진행됩니다. 완료되면 드라이브는 Linux에서 잘 처리됩니다.


반면에 리눅스의 mkudffs를 사용한 포맷은 몇 초 안에 성공적으로 완료되는 것 같습니다.
MarcH

실제로 Linux에서 mkudffs로 파일 시스템을 만든 후 Win7에서 빠른 형식을 수행해야했습니다. 이것이 없으면 Windows는 드라이브를 계속 포맷하려고했습니다. 어떤 이유로 든 드라이브 끝에 5MB의 빈 공간을 만들었습니다. 그러나 적어도 지금은 두 OS에서 모두 작동합니다.
DanMan

나 자신에 대한 답장 : 5MB는 최근 UDF 버전의 메타 데이터 블록 일 수 있습니다.
DanMan

1
완전히 틀렸다! 빠른 서식은 "백그라운드에서 계속 서식"이 아닙니다. 트랙을 포맷하지 않고 파일 시스템을 초기화하는 것입니다.
Anixx

6

UDF를 포맷 할 때 밑줄을 그을 수없는 것은 UDF를 포맷 할 때 적절한 블록 크기를 사용하는 것이 얼마나 중요한지입니다. 여기 에 설명 된대로 물리적 섹터 크기와 일치하지 않는 구성된 블록 크기를 사용하면 일부 운영 체제에서 드라이브를 유효한 UDF로 감지하지 못할 수 있습니다.

위에 링크 된 답변 (및 다른 연구 / 테스트)에서 영감을 얻어 올바르게 감지 된 섹터 크기를 사용하여 UDF 형식화 프로세스를 자동화하는 스크립트를 작성했습니다. GitHub의 format-udf를 참조하십시오 . 주목할만한 특징 :

  • UDF (Universal Disk Format)로 블록 드라이브 (하드 드라이브 또는 플래시 드라이브)를 포맷합니다
    • 최대 호환성에 사용되는 UDF 개정 2.01
    • 기존 MBR을 삭제하기 위해 처음 4096 개의 섹터가 제로화됩니다 (적절한 UDF 감지에 필요함)
  • 여러 운영 체제 제품군 (Windows, OS X 및 Linux)에서 결과 파일 시스템을 읽고 쓸 수 있습니다.
  • Bash 환경이있는 모든 OS에서 실행

마지막으로, 내가 작성한이 스크립트는 Windows에서 사용할 수 없습니다. 그러나 스크립트는 OS X 및 Linux에서 실행됩니다. 이렇게하면 Windows가 새로 포맷 된 UDF 드라이브를 마술처럼 감지 할 수 있어야합니다.

게시 된 질문에 직접 대답하기 위해 format-udf는 다음을 수행합니다.

  • 운영 체제 및 환경에 따라 적절한 도구를 선택하십시오 ( mkudffsLinux).
  • 형식화에 필요한 모든 매개 변수를 자동으로 감지하고 채 웁니다 (포함 blocksize)
  • OS 호환성 극대화 (호환성 차트는 GitHub 페이지 참조)
  • asker가 찾고있는 최대 기능 세트 (및 최소 한계)를 산출

5

해당 Windows 명령 ( "format x : / fs : UDF")으로 이전 질문 (파티션이 아닌 전체 디스크에 UDF 파일 시스템을 작성해야 함)에서 발견을 어떻게 조정 했습니까? 내 시도에서 Windows는 파티션에 드라이브 문자 만 제공합니다.

호환성을위한 형식화에 관해서는 키가 블록 크기에 있다고 생각합니다. 대부분의 하드 드라이브와 USB 플래시 스틱의 블록 크기는 512 바이트이므로 FS를 생성 할 때 가장 큰 호환성을 가졌습니다. format.com이 해당 블록 크기를 사용하고 있으며 mkudffs에는 블록 크기를 변경하는 명령 스위치가 있습니다. 512 바이트 블록을 사용할 때 파일 시스템을 마운트하기 위해 OS X 및 Windows 만 얻을 수있었습니다. 이전 버전의 Linux는 2048의 블록 크기를 가정했지만 항상 "-o bs = 512"로 마운트 할 수 있습니다.

전체 디스크 대 파티션 문제로 인해 여전히 호환성 문제가 발생합니다. 전체 디스크를 포맷하면 Windows가 마운트되지 않으며 파일 시스템을 결정할 때 OS X은 파티션 유형 번호를 초과하지 않으므로 수동으로 마운트해야합니다. Linux에 적절한 장치 이름 (sda vs sda1)을 부여한 한 신경 쓰지 않았습니다.

요약하면, 내가 찾은 가장 호환 가능한 설정은 블록 크기 512의 UDF로 포맷 된 06 (FAT16) 유형의 단일 파티션입니다. Windows에서 자동으로 작동하고 Linux 및 OS X에서 약간의 수동 개입이 가능합니다.


3
다른 실험을 시도했습니다. 이번에는 하드 드라이브 대신 USB 플래시 스틱을 사용했습니다. "mkudffs --media-type = hd --blocksize = 512 / dev / sda"로 포맷되어 Linux, OS X 및 Vista에서 번거 로움없이 작동합니다. 너무 나쁜 Windows는 USB 스틱에서 파티션없는 형식을 허용하지만 하드 드라이브는 허용하지 않는 것 같습니다.
Simon

플래시 메모리를 조기에 착용하지 않도록 동일한 블록 크기를 유지하려고합니다. lwn.net/Articles/428584
MarcH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.