강좌 & 팁
리눅스의 부트 스크립트는 하드디스크 장치를 찾아서 마운트해주는 옵션이 있습니다.
특정 하드디스크의 파티션을 특정 디렉토리로 마운트 시켜주는 역할을 하는 거죠
그것이 바로 /etc/fstab 파일 입니다.
이전에는 hdd 의 파티션을 잡을때 /dev/hda, /dev/hdb, /dev/sda, /dev/sdb
뭐 이런 식으로 잡았죠.
그래서 fstab 에는 /dev/sda 를 어떤 디렉토리에 마운트 시켜라 하는 정보가 들어가 있었습니다.
그런데 하드를 추가하거나 할때 hdd 의 순서가 바뀌거나 하면 대상 파티션이 바뀌어 마운트되는
문제가 있었죠. 그래서 순서를 조심했어야 했습니다.
그래서 도입된 것이 hdd 에 uuid 를 부여해서 마운트 하는 방법입니다.
샘플로 uuid 정보를 볼까요?
root@nadia:/home/falinux# blkid
/dev/mmcblk0p1: UUID="bf42bfd2-78f9-4cd2-9002-dd502fcf72db" TYPE="ext2"
/dev/mmcblk0p2: UUID="697d371c-92f6-40bc-b77b-8261a4f85f88" TYPE="ext4"
/dev/sda1: UUID="f198aa3e-13ba-4c36-b88c-10cf5f9c2465" TYPE="ext4"
/dev/sda2: UUID="a7a6fd29-64c0-480b-ac0f-e63d51365287" TYPE="swap"
네 보시다 시피 UUID 의 길이는 외울수 없을 만큼 충분히 깁니다.
따라서 겹칠일이 없죠.
uuidgen 을 이용하면 생성할수도 있습니다.
포맷할때 생성할수도 있구요
랜덤하게 생성할수도 시간베이스로 생성할수도 있습니다.
어쨋건 이렇게 uuid 를 사용하게 되면 하드의 위치가 바뀌어도 정확하게 원하는 파티션을
원하는 디렉토리에 항상 동일하게 마운트 할수 있게 됩니다.
위의 정보를 이용한 fstab 파일입니다.
root@nadia:/home/falinux# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID="f198aa3e-13ba-4c36-b88c-10cf5f9c2465" / ext4 errors=remount-ro,discard,norelatime,noatime 0 1
# swap was on /dev/sda5 during installation
UUID="a7a6fd29-64c0-480b-ac0f-e63d51365287" none swap defaults 0 0
sysfs /sys sysfs nodev,noexec,nosuid 0 0
none /sys/fs/fuse/connections fusectl optional 0 0
none /sys/kernel/debug debugfs optional 0 0
none /sys/kernel/security securityfs optional 0 0
devtmpfs /dev devtmpfs,tmpfs mode=0755 0 0
devpts /dev/pts devpts noexec,nosuid,gid=tty,mode=0620 0 0
tmpfs /run tmpfs noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs nodev,noexec,nosuid,size=5242880 0 0
none /run/shm tmpfs nosuid,nodev 0 0