우분투 <=> 윈도우 의 경우는 심볼릭링크가 크게 상관없을 듯 하다.

그런데, 우분투 <=> 우분투 의 경우 samba 마운트 시에 symlink 유지여부가 SMB 버전마다 차이가 있는 듯 하다.

결론부터 이야기 하면 vers=1.0 으로 해야 유지가 되는 듯 하다.

//ubox-serv/data  /data/   cifs uid=ccex,gid=ccex,username=guest,password=,iocharset=utf8,vers=1.0  0  2
#//ubox-serv/data  /data/   cifs uid=ccex,gid=ccex,username=guest,password=,iocharset=utf8,noserverino 0  2

fstab 에 설정에서 위처럼 vers=1.0 으로 하는 경우만 symlink 유지됨.

SMB버전은 올리고, noserverinfo 등의 옵션은 안되는 듯 하다.

 

다른 해결 방법이 있을지는 추후 필요하면 정리.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 10.04 에서 samba mount 사용하기(fstab)


저의 개발환경 구성을 이렇게 하고 있다.(사정이 있어 기존 구성된 환경을 유지하려다 보니 복잡해 보인다)

                                                     [개발서버(소스)]  => 개발VM(nfs)    => web-dev
외부작업환경1)               윈도우 네트워크 드라이브 -> vm (smb)
외부작업환경2) (remote) -> sftp -> smb_mount -> vm (smb)

그에 맞게 작업환경을 꾸미다보니 sftp 로 직접 붙이려니 애매한 부분이 있었다.
그래서 중간에 smb mount 해서 사용하기로 했다.


1. samba 관련 설정. /etc/samba/smb.conf (설치 부분은 생략)

[httpd]
   comment = working dev httpd
   path = /work/httpd
   browseable = yes
   hosts allow = 127.0.0.1
   force user = www-data
   force group = www-data
   public = yes
   guest ok = yes
   writable = yes
   printable = no
   create mask = 0765
   directory mask = 0755

2. mount 에 필요한 패키지 설치

# apt-get install smbfs

  최신 우분투 버전은 cifs-utils 로 설치하는 듯 함.

3. /etc/fstab 에 다음처럼 항목 추가

//linux/httpd  /smb_mount/httpd  smbfs uid=user,gid=adm,password=,iocharset=utf8,noauto  0  2

예전버전에 codepage=cp949 등이 쓰였는데, 언제부터인가 옵션이 빠졌음. iocharset 만 추가

uid , gid 는 서버의 접근계정 아이디/그룹
password 옵션은 암호가 있으면 넣고, 없으면 그냥 빈란

4. 마운트

# mount /smb_mount/httpd

크게 어려운 부분은 없다.(자신에 맞게 환경설정은 변경)

해당위치로 /smb_mount/httpd 로 sftp 접근해서 파일을 직접 수정해서 작업한다.




반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
리눅스를 쓰다보면, /etc/fstab 이라는 파일을 보게 된다.
하드디스크를 추가하거나 하면, 편집해서 추가해줘야 한다.(자동으로 해주는 GUI 툴이 있나?)

그런데, 종종 하드디스크를 추가한 후 드라이브명(?)이 바뀌는 경우가 있다.
/dev/sda , sdb , sdc 의 순서가 바뀌는 경우가 있다.

이런경우 하드디스크의 고유한 UUID 를 이용하면 바뀌는 것에 신경을 쓰지 않아도 된다.


스텝 원! - 하드디스크를 추가하자.
 하드디스크를 달자.
 추가한 후 fdisk -l 을 입력해본다. 참! 쉽~죠잉.

예를 들어 본인의 시스템은 다음과 같다.(진한색만 보면 됨)
root@ubuntubox:/home/young# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa8b8174c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        5472    43952128    7  HPFS/NTFS
/dev/sda2            5473       10579    41021977+  83  Linux
/dev/sda3           10580       19458    71312384    7  HPFS/NTFS

Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0fda4a0a

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1216     9767488+  83  Linux
/dev/hda2            1217        5472    34186320    5  Extended
/dev/hda3            5473       10579    41021977+  83  Linux
/dev/hda4           10580       14593    32242455   83  Linux
/dev/hda5            1217        5289    32716341   83  Linux
/dev/hda6            5290        5472     1469916   82  Linux swap / Solaris

Disk /dev/sdb: 73.4 GB, 73407900160 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1337    10739421   83  Linux
/dev/sdb2            1338        6444    41021977+  83  Linux
/dev/sdb3            6445        8924    19920600   83  Linux
원래는 hda , sda 이렇게 두개가 있었다.( hda : 120기가 - IDE 하드 , sda : 73기가 - SCSI 하드)
그런데, 위에서 보시다 시피 추가한 160기가 SATA 하드가 sda 로 잡히고,
기존의 sda 였던 스카시 하드가 sdb 로 잡힌것을 볼 수 있다.

보통 fstab 을 보면 이런식으로 드라이브문자(sda,hda) 를 쓰고는 하는데.
/dev/sda1  /work1     ext3    defaults        0       2
/dev/sda2  /work2     ext3    defaults        0       2
/dev/sda3  /work3     ext3    defaults        0       2
위의 경우처럼 하드를 추가한 것 뿐인데, 시스템이 부팅이 안되는 경우가 생길 수 있다.
배포판에서도 그런 이유인지, 드라이브문자를 직접쓰기보다는 UUID 를 사용하는 추세인 듯 하다.
기존에 쓰던 방식에 익숙해서 UUID 보다는 드라이브문자를 쓰곤 했는데, 앞으로 UUID 를 써보자.


스텝 투! - UUID 를 알아내자.
  그럼 UUID 를 어떻게 알 수 있지?(시스템의 루트 파티션이 다음과 같다)
UUID=e38c77a6-0990-44bf-a592-9c156920fb5d /       ext3    errors=remount-ro 0       1
UUID 가 e38c .. b5d (적기도 힘든데, 외울 수도 없고) 어떻게 알 수 있나?
UUID 를 알아내는 명령은 바로 blkid (뭐야, bl 키드?) - 아마도 block ID(블럭 아이디) 일 듯 하다.

위 시스템의 blkid 명령을 내려봤다.
/dev/hda1: UUID="e38c77a6-0990-44bf-a592-9c156920fb5d" SEC_TYPE="ext2" TYPE="ext3"
/dev/hda3: UUID="9fa0f339-1fa5-4c75-942a-b6001b7bcde8" SEC_TYPE="ext2" TYPE="ext3"
/dev/hda4: UUID="26474b1a-8353-4a15-8add-94df2a6784b7" SEC_TYPE="ext2" TYPE="ext3"
/dev/hda5: UUID="9dfa1ff8-b91c-47db-9d8d-8cfb78ff7432" SEC_TYPE="ext2" TYPE="ext3"
/dev/hda6: TYPE="swap" UUID="0e7bd3d5-88dd-4a06-81bd-2dd1f2870a5c"
/dev/sda1: UUID="00CC65DDCC65CE0A" LABEL="Data1" TYPE="ntfs"
/dev/sda2: UUID="8d6f7e4f-4bfe-4ad1-83b8-22d71065193f" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: UUID="2E38726838722EC9" LABEL="Data2" TYPE="ntfs"
/dev/sdb2: UUID="1ed998db-712f-4fc3-9155-02e091fd8380" TYPE="ext3"
/dev/sdb3: UUID="4c907521-a4fb-4a2c-86ce-9b8206aaf33a" TYPE="ext3"
/dev/sdb1: UUID="feeb3d31-7c74-41e3-87fd-9a60c900430f" SEC_TYPE="ext2" TYPE="ext3"
위 루트시스템 파티션인 e38c77a6-0990-44bf-a592-9c156920fb5d  뭐시기가 보인다.
그외 다른 파티션들도 UUID 를 확인할 수 있다. 저걸 하나하나 입력하긴 뭐할테니 필요한것은 복사하자.


스텝! 쑤~우리 : fstab 에 UUID 로 기록하자.
  /etc/fstab 파일을 편집하자. 위의 /dev/sda1 , sda2 ... 등으로 쓰던 부분을 UUID 로 바꿨다.
UUID=feeb3d31-7c74-41e3-87fd-9a60c900430f /work1     ext3    defaults        0       2
UUID=1ed998db-712f-4fc3-9155-02e091fd8380 /work2     ext3    defaults        0       2
UUID=4c907521-a4fb-4a2c-86ce-9b8206aaf33a /work3     ext3    defaults        0       2
/dev/sda1 에 해당하는 부분을  UUID=feeb3d31-7c74-41e3-87fd-9a60c900430f  이런식으로 바꿔주기만 하면 된다. 나머지 sda2, sda3 도 같은 방식으로 바꿔준다.

이렇게 하면 추후 하드디스크를 추가해서 드라이브문자가 바뀐다고 해도 이상없이 작동한다.
(위의 sda1 도 하드가 추가되면서 sdb1 으로 바뀐것이다)


참! 쉽~죠잉


ps. 예전에 LABEL 을 이용하는 방법도 잠깐 유행(?) 했었는데, 방법도 편하지 않고 관리하기 힘들어서 그런지 그 방법은 요즘은 잘 쓰지 않는 듯 하다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,