[완료] 리눅스에서 만든 vfat 파티션 (utf8) 이 윈도우즈에서도 잘 돌아갈까요?
글쓴이: kirrie / 작성시간: 토, 2008/03/15 - 10:42오후
리눅스에서 vfat으로 파티션을 하나 만들어 utf8 옵션을 주고 마운트해서
사용중입니다.
이 하드디스크를 윈도우즈에 갖다 붙여야 될 상황이 되었는데, utf8로 인코딩된 한글 파일명을 가진 파일들을
윈도우즈에서도 잘 인식할까요? 전에 이런 상황에서 파일들이 다 꼬여서 엉망이 되었다라는 이야길 들은 것 같아서...
답변에 미리 감사드립니다.
Forums:
LANG 환경변수와
LANG 환경변수와 마운트 시 iocharset옵션이 맞아떨어지는 상태에서 codepage=949 옵션을 주고 마운트해서 사용하셨다면 문제 없습니다.
LANG=ko_KR.EUC-KR
LANG=ko_KR.EUC-KR 계열이였다면
mount -t vfat -o codepage=949,iocharset=cp949
LANG=ko_KR.UTF-8 계열이였다면
mount -t vfat -o codepage=949,iocharset=utf8
비스타는 어떨지
비스타는 어떨지 몰라도, 문제가 있을 것으로 보이는데요.
마운트 안 하시는걸 권하고 싶습니다.
차라리 네트워크를 통해서(samba로) 파일을 이동하시길 바랍니다.
윈도는 파일 이름 저장에 유니코드를 사용하지 않습니다.
vfat 는 파일 이름
vfat 는 파일 이름 저장에 유니코드만 사용합니다. UTF-16LE
마운트 옵션의 codepage 는 vfat 을 위한 게 아니라 fat 을 위한 겁니다.
fat 은 특별히 charset 이 정의되어 있지 않습니다. 주면 주는대로 받아먹는 놈이죠.
long filename entry 접근 때 iocharset(UI) <-> utf16(disk) 의 변환이 일어나고,
short filename entry 에 접근 때 iocharset(UI) <-> codepage(disk) 의 변환이 일어납니다.
따라서, iocharset 만 본인이 사용하는 환경에 맞춰주시면,
vfat 을 지원하는 어떤 OS 에서 마운트를 해도 한글이 잘 보입니다. 실제 디스크에 기록된 파일이름(long name)은 utf16 이니까요.
다만, windows 의 command 창을 통해서도 파일에 접근해야 한다면 codepage 를 맞춰줘야겠죠.
이놈은 8.3 형식의 short name 만 찾아다니니까요.
OTL
윈도(?)에서는
윈도(?)에서는 유니코드만 사용된다는 말을 듣고 “그럼 왜 codepage 옵션이 필요한 거지?”라고 궁금해하고 있었는데 bushi님의 글을 읽고 궁금증이 풀렸습니다. 감사합니다. :)
utf16le로 저장되는
utf16le로 저장되는 부분은 긴 파일이름일겁니다.
8.3 형태의 짧은 파일이름은 아무 인코딩이나 다됐고. 옛날 도스시절에 파일이름이 한글 4자까지 됐었었는데
그리고 2000, xp의 짝퉁(?) 도스창은 긴 파일이름 찾아다닙니다.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
아무런 이상이 없습니다만....
400G짜리 S-ATA 하드 하나를 통째로 VFAT... 즉, FAT32 파티션으로 만들어 쓰고 있지만 윈도우에서 아무런 이상이 없던데요?(당시만 해도 리눅스에서는 NTFS에서 읽기만 가능했지 쓰지를 못해서 이리 만든거였죠. 윈도, 리눅스에서 공통으로 데이타 저장용 하드로 쓸 계획이어서...)
이제는 리눅스에서도 NTFS 쓰기가 가능해서 파티션 바꾸야하는데 하드가 데이타가 꽉차있어 아직도 VFAT 포맷으로 잘 사용중이라는...^^
-------------------------------------------------------------------------------------------
나에겐 할 수 있다는 의지와
하면 된다는 신념과
해야 한다는 의무가 있다.
http://rx78gd.tistory.com
-------------------------------------------------------------------------------------------
나에겐 할 수 있다는 의지와
하면 된다는 신념과
해야 한다는 의무가 있다.
http://rx78gd.tistory.com
vfat과 fat32는 다른 거
vfat과 fat32는 다른 거 아닌가요?
vfat은 기존의 fat16에 긴 파일이름 지원을 위해 만든 파일 시스템이고, fat32는 긴 파일이름 지원 말고도 대용량을 지원하기 위해 만든 것이라고 들었는데요.
아무튼 다르다고 알고 있습니다.
--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com
피할 수 있을때 즐겨라! http://melotopia.net/b
vfat 과 fat32 가 다르냐
vfat 과 fat32 가 다르냐 마냐 따지는 것은 좀 어폐가 있습니다.
vfat 은 fat 의 확장이고, fat 은 FAT12/16/32 로 나뉩니다.
vfat 은 긴파일이름을 다루기 위한 약속이고,
FAT32 는 최대 2^32-2 개의 cluster 를 다룰 수 있도록 스펙을 변경한 것입니다.
본질적으로 vfat 은 FAT12/16/32 등의 종류와 무관합니다.
filename 을 적는 곳에, fat 에 정의되지 않은 파일속성 플래그를 사용해서, 여러개의 entry 를 묶어 하나의 파일이름을 만드는 꼼수를 약속할 뿐이고,
그 약속들 중의 하나가 파일 이름을 반드시 utf16 으로만 적자는 것입니다.
OTL
2000 은 모르겠고, xp
2000 은 모르겠고,
xp 에선 cmd 와 command 두 개의 명령으로 나오는 도스창이 다릅니다.
후자는 8.3 형식의 short filename 만 보여줍니다. shell 의 기능도 ms-dos 의 그것과 같이 빈약합니다.
vista 에선 전자만 있고 후자는 없어졌더군요.
OTL
답변
답변 감사드립니다.
아, 역시나 애초에 아무 생각 없이 utf8로 마운트 하는게 아니었어요. ㅜ.ㅜ
--->
데비안 & 우분투로 대동단결!
--->
데비안 & 우분투로 대동단결!
어라? 우분투 7.10
어라?
우분투 7.10 에서 하드를 통째로 vfat으로 포맷해서, 기본 마운트 옵션 (defaults,utf8,umask=007,gid=... 등등, 이것은 제가 설정한 마운트 옵션이 아니라, 우분투가 자동으로 잡아 주었던 옵션입니다.) 으로 붙여 사용하고 있었습니다. 제 우분투는 utf8 환경이었고, vfat 파티션의 이 하드도 한글로 된 파일을 복사하면 제대로 잘 보였습니다.
그런데 이걸 그냥 윈도우즈 xp에 붙였더니, 한글이 안깨지고 잘 나오네요. -_-;; 검은해님의 codepage=949,iocharset=utf8 옵션도 필요 없었습니다.
괜히 이걸 하드를 다른 컴퓨터에 붙여서 삼바로 옮기고 (80기가나 되는 파일들이라;;) 시간 엄청 잡아 먹었는데, 좀 신기하기도 하고... 허허..
--->
데비안 & 우분투로 대동단결!
--->
데비안 & 우분투로 대동단결!
용량이 너무 크면 못 읽던데요...
그전에 해봤는데... vfat으로 잘 포맷해서 리눅스에선 잘 쓰는 파티션이었지만
XP에선 못 읽더군요...
보니깐 XP 디스크 관리자에선 vfat 포맷할 수 있는 파티션 크기의 제한이 있는데
실제로는 vfat에서 그보다 큰 파티션 지원이 가능한데 디스크 관리자에서는 그렇다고 하더군요.
여하튼 그 크기의 vfat을 리눅스에서 만들어가지고 XP에서 읽게 하려고 했더니 안되었고요.
그게 진짜 원인이었는지는... 여하튼 크기를 줄이니까 보이더군요.
글쎄요..제가아는
글쎄요..제가아는 바로는 그 사이즈는(윈도우에서 못 만드는....) 30기가라고 알고 있습니다.
이 사이즈가 넘어가면 ntfs 로 바뀌더군요(처음 포멧할때)
근데 리눅스에서 이보다더 큰사이즈를 만들고 xp 에서 인식을 하지 못했다는것은
처음들어 보는군요.
왜냐면 제가 그렇게 30기가보다 더 크게 해서 쓰고 있거든요
댓글 달기