윈도우즈파티션을 우분투에 마운트하여 삼바로 공유할때 파일이름 한글이 안보입니다

안녕하세요.
유닉스나 리눅스 서버를 사용은 해 봤지만 직접 서버를 꾸며 보는건 처음인 초보 사용자입니다.

비슷한 질문은 있었는데 저랑은 약간 상황이 다른 것같아서 적용을 해 봐도 잘 안되네요.

제 문제는 이전에 윈도우즈xp로 되어 있던 ftp 파일서버를 우분투 파일서버로 바꾸는 겁니다.
문제가 두가지인데

1.fstab을 통해서 윈도우즈 파티션을 마운트 하면 owner가 root로 마운트가 되어서 samba 사용자로 로그인하면 읽기만 되고 쓰기가 안됩니다.
삼바 설정은 읽기/쓰기로 했지만 소용 없습니다.

2.이미 윈도우즈파티션(fat32)에 한글로 된 파일이름들로 저장된 파일이 약 380GB 정도 있는데 마운트 해서 우분투에서 로컬로 봐도 한글이름이 깨지고 삼바로 공유하여 리모트에서 윈도우즈 PC로 들어와서 봐도 한글이름이 깨집니다.

1번과 2번은 별개의 문제인 것 같아서 별개로 검색해 보고 여러가지 적용해 보고 있는데 현재로는 상당히 벽에 막힌 상황입니다.

일단 smb.conf에
[global]
dos charset = cp949
display charset = UTF8
unix charset = UTF8

으로 되어 있는 상황입니다.

그리고 저의 fstab의 윈도우즈 파티션 마운트 부분은 다음과 같습니다.

/dev/sdc1

UUID=4987-FB98 /usr/ftp_d vfat defaults 0 0

/dev/sdb1

UUID=4989-3AC5 /usr/ftp_e vfat defaults 0 0

/dev/sda6

UUID=89E2-153F /usr/dry vfat rw,suid,dev,auto,user,async,noexec,umask=777 0 0

sda6의 마운트 부분이 지저분한 이유는 여러가지를 테스트해 보느라고 그렇습니다.
결과는 아직까지 별 소득은 없습니다.

긴 글 읽어주셔서 감사합니다.

저도 동일하게 설정해서 USB HDD에 설정이 되어있습니다.
혹시 들고다니다가 XP에서 복사할일이 있으면 하고,
우분투 돌려서 영화볼수도 있게 하기 위해서요

/usr/samba ntfs rw,gid=65534,uid=65534,umask=022 0 0

gid=65534 ;== nogroup
uid=65534 ;== nobody
umask 가 반대로 되는거더라구요…
우분투 설치시 최초만들어진 계정에 권한을 부여시
gid=1000
uid=1000

이렇게 되어있습니다.
삼바에서

[global]
display charset = utf-8
unix charset = utf-8

[public]
comment = public
path = /usr/samba
force user = nobody
force group = nogroup
read only = no
public = yes
writable = yes
guest ok = yes
browseable = yes
share modes = yes

정확하게 fstab에는 옵션이 더 있었던것 같은데, 집에가서 확인후 빠진것은 추가하도록 하겠습니다.

// 추가부분
/usr/samba ntfs defaults,gid=65534,uid=65534,umask=022 0 0

[quote="ypsd8ecs46uu":x5utt6zg]
/usr/samba ntfs rw,gid=65534,uid=65534,umask=022 0 0

gid=65534 ;== nogroup
uid=65534 ;== nobody
umask 가 반대로 되는거더라구요…
우분투 설치시 최초만들어진 계정에 권한을 부여시
gid=1000
uid=1000
[/quote:x5utt6zg]

감사합니다.
말씀하신 대로 umask는 반대로 되더군요.
그냥 umask=000으로 하니까 권한은 다 줄수 있게 되었습니다.
gid와 uid를 주어서 삼바 파일공유계정을 owner로 해서 마운트하는 것도 테스트해봐야 되겠네요.

어쨌건 umask를 이용해서 samba 파일공유에서 읽기/쓰기가 되는 것 까진 해결이 되었습니다.
한글로 된 파일이름 문제는 아직도 5분마다 리부팅을 반복하는 삽질중입니다.
그런데 아직 그다지 해결의 실마리가 안보이네요. ㅠㅠ

  1. 접근 권한 문제,

uid와 gid 옵션을 사용해 보세요. uid=1000,gid=1000 <- 이런 식으로 주시면 됩니다.

uid나 gid는 /etc/passwd 파일에서 확인하실 수 있습니다. 보통 처음 생성한 계정은 둘 다 1000입니다.

  1. 로케일 문제,

locale=ko_KR.UTF-8 옵션을 사용해 보세요.

해결되시길 바랍니다~ :)

[quote="pcandme":1be8ky41]2. 로케일 문제,

locale=ko_KR.UTF-8 옵션을 사용해 보세요.

해결되시길 바랍니다~ :)[/quote:1be8ky41]

답변 감사합니다.
1번의 권한문제는 그럭저럭 해결 되었습니다.
이후 유저별 설정은 조금씩 테스트하며 바꾸어 가야 될 것 같습니다.
현재 로그인용계정과 삼바 공유용 계정을 별도로 설정하고 있고
관리는 로그인용 게정에서 하고 파일공유 사용자에게는 삼바 공유용 게정만 알려줄 예정입니다.

2.번 로케일 문제에서요.
위의 옵션을 어디에 주어야 되는 건가요?
fstab에 저렇게 하고 부팅해보니 아예 mount가 안되던데요.

원래 이렇게 되었을 때 마운트는 되고 한글파일이름은 볼수 없었습니다.

UUID=89E2-153F /usr/dry vfat rw,auto,user,noexec,uid=1000,gid=1000,umask=000,iocharset=cp949 0 0

이것을 아래의 4가지로 해 보았는데 모두 마운트가 안되었습니다.

UUID=89E2-153F /usr/dry vfat rw,auto,user,noexec,uid=1000,gid=1000,umask=000,locale=ko_KR.utf8 0 0

UUID=89E2-153F /usr/dry vfat rw,auto,user,noexec,uid=1000,gid=1000,umask=000,locale=ko_KR.UTF-8 0 0

UUID=89E2-153F /usr/dry vfat rw,auto,user,noexec,uid=1000,gid=1000,umask=000,iocharset=cp949,locale=ko_KR.utf8 0 0

UUID=89E2-153F /usr/dry vfat rw,auto,user,noexec,uid=1000,gid=1000,umask=000,iocharset=cp949,locale=ko_KR.UTF-8 0 0

마운트가 안되는것은 옵션중에 오류가 있거나, 지원하지 않는 옵션 때문입니다.

금방 vmware에서 HDD를 하나추가해서 fat32로 포맷하고 윈도우에서 한글로된 디렉토리를 몇개만든후에
우분투에서 fstab에

vfat defaults
로 하고 해당디렉토리에 들어가보니 한글이 ??로 나타나더군요…

그래서
nautilus에서 마운트를 시켜보니 한글이 잘 보였습니다.

sudo mount
를 실행해보니 마운트된 파티션의 옵션이 아래와 같이 나오더군요…

[quote:1p3koq2p]# sudo mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,nosuid,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
lrm on /lib/modules/2.6.27-11-generic/volatile type tmpfs (rw,mode=755)
securityfs on /sys/kernel/security type securityfs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/live/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=live)
/dev/sdb1 on /media/disk type vfat (rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,utf8,umask=077,flush)[/quote:1p3koq2p]

이것을 fstab에 그대로 넣어보니 한글이 정상적으로 나오기 시작하네요

[quote:1p3koq2p]UUID=4992-5C61 /usr/dry vfat rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,utf8,umask=077,flush 0 0[/quote:1p3koq2p]

최종은 이렇게 하면 되겠네요

[quote:1p3koq2p]UUID=89E2-153F /usr/dry vfat rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,gid=1000,utf8,umask=022,flush 0 0[/quote:1p3koq2p]

[quote="ypsd8ecs46uu":1nxfk2os]마운트가 안되는것은 옵션중에 오류가 있거나, 지원하지 않는 옵션 때문입니다.
…(중략)

이것을 fstab에 그대로 넣어보니 한글이 정상적으로 나오기 시작하네요

[quote:1nxfk2os]UUID=4992-5C61 /usr/dry vfat rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,utf8,umask=077,flush 0 0[/quote:1nxfk2os]

최종은 이렇게 하면 되겠네요

[quote:1nxfk2os]UUID=89E2-153F /usr/dry vfat rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,gid=1000,utf8,umask=022,flush 0 0[/quote:1nxfk2os][/quote:1nxfk2os]

답변 감사합니다.
위와 같이(마지막에 올려주신 줄을 그대로 사용…) 하니 로컬 리눅스 콘솔에서도 한글 파일이름이 제대로 보이고
삼바를 통해 접속한 공유PC에서도 한글 파일이름이 제대로 보이네요.
이제부터는 위의 옵션중에 어느 놈이 한글 보이는 것과 관련이 있었던지 하나씩 뒤져볼까
벌써 한동안 삽질도 했고 귀찮은데 일단 되니까 그냥 쓸까 살짝 고민을 하게 될 것 같습니다.

이제 리모트PC(윈도우즈PC)에서는 파일내용의 한글이 보이는데 로컬PC에서는 파일내용의 한글이 안보이는 문제를 해결해야 될텐데
슬슬 귀차니즘이 몰려와서 그냥 쓸까 하는 생각을 해 봅니다.
어차피 윈도우즈 PC에서 만든 파일 내용의 한글이 리눅스에서 안보여도 크게 불편할 것도 없는데… ^^

여러 분들의 도움으로 저같은 초보에게는 어려워 보이던 문제를 잘 해결했습니다.
답변 달아주신 분들과 글 읽어주시고 관심 가져주신 모든 분들께 감사합니다.