저는 Debian Squeeze 시스템을 실행 중이고 /etc/fstab에 Windows 공유를 마운트하려고 합니다. 기존 cifs 마운트가 작동하고 있지만 이는 단순한 //xx.xx.xx.xx/sharename 상황입니다. 그러나 이 두 번째 것은 작동하지 않습니다.
문제 - 두 번째 공유에는 경로에 공백이 여러 개 있습니다.
fstab의 줄은 다음과 같습니다.
//servername.org.au/ABC/Company Services/Department Services/Area Services/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
지금까지 나는 다음을 시도했습니다.
fstab의 경로 이름 주위에 큰따옴표가 있습니다.
//servername.org.au/ABC/"Company Services/Department Services/Area Services/Restricted" /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
공백을 \040으로 바꾸기(Linux에서와 같이)
//servername.org.au/ABC/Company\040Services/Department\040Services/Area\040Services/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
백슬래시로 이스케이프
//servername.org.au/ABC/Company\ Services/Department\ Services/Area\ Services/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
이들 중 어느 것도 작동하지 않았습니다.
디렉토리가 유효한지 확인했으며 servername.org.au를 확인된 IP로 바꾸려고 시도했지만 도움이 되지 않았습니다.
kern.log에 나타나는 오류는 다음과 같습니다.
커널: [1830446.002198] CIFS VFS: cifs_mount가 반환 코드 = -22로 실패했습니다.
그게 다입니다. 더 자세히 설명할 내용은 많지 않습니다.
두 마운트 모두에 대해 정확히 동일한 구문과 자격 증명을 사용하고 있습니다. 자격 증명을 사용하여 Windows 상자의 동일한 공유에 연결하기 때문에 자격 증명이 유효하고 작동한다는 것을 알고 있습니다. 공유 이름을 변경하고 싶지만 불행히도 그것은 내 서버 중 하나가 아니며 그들은 그렇게 하지 않을 것입니다.
그래서 저는 이 두 대니쉬를 머리 옆에 묶고 이렇게 말할 것입니다:
도와주세요 Obi-Stack-Exchange! 당신은 나의 유일한 희망입니다!
미리 감사드립니다!
(편집: 예제 중 하나에서 잘못된 따옴표를 제거했습니다.)
답변1
공백을 다음으로 바꾸는 것이 \040
실제로 올바른 방법입니다.
그것이 당신에게 작동하지 않는 이유는 아마도 뒤에 (잊혀진?) 따옴표가 있기 때문일 것입니다 /Restricted
.
//servername.org.au/ABC/Company\040Services/…/Restricted" /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
다음과 같이 변경하세요.
//servername.org.au/ABC/Company\040Services/…/Restricted /mnt/n-drive cifs id=0,credentials=/etc/samba/login.crt,iocharset=utf8,noperm 0 0
(더 나은 가독성을 위해 경로를 약간 단축했습니다.)
배경: 040
8진수 시스템의 공백에 대한 ASCII 코드입니다.