개인 자작 NAS를 위한 webdav 설정 - 2 (fstab를 이용한 자동마운트)

제가 개인적으로 자작 NAS를 구성하고자 마음 먹었을 때

가장 큰 이유가 되었던 것은 네트워크 드라이브 및 클라우드 서비스 였습니다.

지금 제 개인 NAS에는 우분투 16.04LTS 가 128GB SSD에 설치 되어 있고,

4TB 의 하드디스크가 추가로 부착되어 있습니다.


당연히 네트워크 저장소의 위치는 2TB 로 지정하기 원했고 이를 수행하기 위해

fidsk, fstab, mount 에 대해 기록하고자 합니다.


먼저 윈도우와 다르게 우리가 알아야 할 것은

윈도우처럼 하드디스크를 설치하고 (포멧이 되어있다면) 자동으로 스토리지 위치를

잡아주지 않는다는 것입니다.


이 스토리지의 위치를 지정하기 위해 처음 설치한 하드디스크의 경우 포멧과 마운트를 해줘야 하고

이를 자동으로 재부팅시 마다 우리가 원하는 위치에 잡아두게 할 수 있습니다.

또한 하드디스크의 포멧 (Ex. Fat32, ext4, NTSF .. 등등) 에 따라 사용할수 있는것이 다르니

이에 대한것은 나중에 추가로 작성하도록 하겠습니다.

지금 이 작업을 따라할 때에는 

"우분투의 권한(Permission)을 이용하기 위해 추가 하드디스크에 대해 ext4라는 포멧을 사용했다"

라는 점만 알고계시면 됩니다.


먼저 fdisk 를 이용하여 현재 설치되어있는 스토리지와 마운트 여부를 확인 해 볼 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ sudo fdisk -
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4468476F-A9A1-45A8-9B70-66D8031BD260
 
Device         Start       End   Sectors   Size Type
/dev/sda1       2048   1050623   1048576   512M EFI System
/dev/sda2    1050624 217761791 216711168 103.3G Linux filesystem
/dev/sda3  217761792 234440703  16678912     8G Linux swap
 
 
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9AE106B5-560E-40D6-9D09-3D9E5BDAC8E0
 
Device     Start        End    Sectors  Size Type
/dev/sdb1     34      32767      32734   16M Microsoft reserved
/dev/sdb2  32768 3907026943 3906994176  1.8T Linux filesystem
cs


위의 코드에서 fdisk -l 을 이용해 지금 전체 스토리지에 대한 리스트를 확인 할 수 있습니다.

/dev/sda 가 현재 우분투가 설치되어있는 SSD 이고

/dev/sdb 가 추가로 설치된 하드디스크 입니다.


sdb 를 살펴보면 sdb1,sdb2 로 파티션 구성이 이미 되어있고, 포멧도 되어있음을 알 수 있습니다.

만약 맨 처음에 하드디스크를 설치하고 fdisk -l 를 수행했다면, sdb1,sdb2가 구성되어 있지 않았을 것입니다.


파티션을 추가하기 위해서는 sudo fdisk /dev/sdb 를 실행 시키면 됩니다. (sdb 저장장치에 대한 파티션 구성)


1
2
3
4
5
6
7
8
9
$ sudo fdisk /dev/sdb
 
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Command (m for help): n
 
cs


n을 입력하게되면 새로운 파티션을 추가한다는 뜻이고 m을 눌러 어떠한 명령어가 있는지 확인 할 수 있습니다.

그 다음으로는 파티션 넘버, 시작 위치, 끝위치를 지정해 줌으로써 파티션 구성을 마칠 수 있습니다.


1
2
3
4
Command (m for help): n
Partition number (3-128, default 3): 3
First sector (3907026944-3907029134, default 3907026944): 
Last sector, +sectors or +size{K,M,G,T,P} (3907026944-3907029134, default 3907029134): 

cs


제 경우에는 이미 2개의 파티션이 구성되어있으므로 디폴트 파티션 넘버가 3이고, 이미 거의 대부분에 대해 파티션을 구성해 놓아서

First Sector 가 매우 뒤에 위치해 있으며 Last Sector는 First Sector와 매우 근접해 있음을 볼수 있습니다.

여러분의 경우는 원하는 크기의 파티션을 생각해 두었다가 지정해 주시면 됩니다.

파티션이 잘 구성되엇는지는 p를 입력해서 확인 할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
Command (m for help): p
 
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9AE106B5-560E-40D6-9D09-3D9E5BDAC8E0
 
Device     Start        End    Sectors  Size Type
/dev/sdb1     34      32767      32734   16M Microsoft reserved
/dev/sdb2  32768 3907026943 3906994176  1.8T Linux filesystem
cs


위처럼 파티션이 잘 구성되었다면 포멧을 진행해야 합니다. 우리는 우분투의 형태중 하나인 ext4 형식으로 포멧을 진행할 것입니다.


1
2
3
4
5
$sudo mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (4-Feb-2014)
Discarding device blocks: done                            
Filesystem label=
OS type: Linux
cs

위와 같이 명령어를 수행하면 ext4형식으로 sdb1에 대한 포멧이 진행됩니다.

이제 포멧된 디스크의 UUID를 확인 해야합니다.

sdb1 sdb2 와 같은 형식은 새로운 하드디스크 등이 추가됨에 따라 위치가 변경 될 수 있습니다.

만약 sdb1에 대해 드라이브를 위치시키기로 했는데 정작 sdb1이 바뀌어 버린다면 황당하겠죠?

위와 같은 현상을 막아 줄 수 있는게 UUID 입니다.

UUID는 변하지 않으므로 UUID를 이용해 mount를 시킬경우 항상 같은 스토리지에 대한 마운트를

게런티 할수 있게됩니다.


UUID확인은 blkid 명령을 통해 수행합니다.


1
2
3
4
5
6
$ sudo blkid
/dev/sda1: UUID="0065-0956" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="7d6ac8a3-5d93-43fa-b62f-c57a528ba60e"
/dev/sda2: UUID="947341f7-1170-4954-a1a6-ce0166361f04" TYPE="ext4" PARTUUID="5c73be0a-77c4-4155-be89-d5dafe16238f"
/dev/sda3: UUID="b2af7358-fb41-4f88-a559-ff09a35fe3cb" TYPE="swap" PARTUUID="14d490f7-6275-425a-9e5c-a95c297f7998"
/dev/sdb1: PARTLABEL="Microsoft reserved partition" PARTUUID="6b105c78-1791-42de-8792-d79e68905420"
/dev/sdb2: UUID="5f20683b-774e-4480-9596-618465ae968a" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="406280ca-ef40-47e8-85a5-a5ee3d17722b"

cs


그럼 인제 sdb1를 우리가 원하는 장소에 마운트 할 차례입니다. 

일시적 마운트는 mount 명령을 통해 수행 할 수 있지만 컴퓨터를 재부팅 했을 경우에도 이를 수행하고자 하면

/etc/fstab 파일을 수정해줘야 합니다. 


1
2
$ sudo vim /etc/fstab 
UUID=6b105c78-1791-42de-8792-d79e68905420 /media/Nas ext4 defaults 0 2
cs

 

fstab를 vim으로 수정을 하여 2번줄의 내용을 맨 아래에 추가해 줍니다.

2번줄의 내용을 살펴보면 

"UUID의 대한 영역(아까 파티션을 추가했던 부분)을 /media/Nas 에 위치 시켜달라, 얘는 ext4 형식을 이용한 저장장소이다"

수정이 완료 되었다면 $sudo mount -a 을 이용해 추가된 부분이 이상이 없는지 확인 할 수 있습니다.


1
$ sudo mount -a
cs

마운트 여부를 확인 하려면 그 위치로 이동해 봐도 되지만 df 명령을 이용해 확인 할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0/dev
tmpfs           794M   26M  768M   4/run
/dev/sda2       102G  6.1G   91G   7/
tmpfs           3.9G  192K  3.9G   1/dev/shm
tmpfs           5.0M  4.0K  5.0M   1/run/lock
tmpfs           3.9G     0  3.9G   0/sys/fs/cgroup
/dev/sda1       511M  3.5M  508M   1/boot/efi
/dev/sdb2       1.8T   46G  1.7T   3/media/Nas
tmpfs           794M   32K  793M   1/run/user/108
tmpfs           794M     0  794M   0/run/user/1000
cs1


10번 줄로부터 마운트가 잘되었음을 확인 할 수 있습니다.