프로그래밍n학습자료(2018~)/라즈베리파이

[Raspberry Pi] 3. 라즈베리파이3 나스만들기 - 외장하드 마운트하기

단세포소년 2018. 5. 24. 16:31
반응형

외장하드 준비하기

 

하드 디스크 확인하기

 

lsblk  통하여

$ sudo lsblk

 

NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda                        8:0    0  3.9G  0 disk

├─sda1                     8:1    0  487M  0 part /boot

├─sda2                     8:2    0    1K  0 part

└─sda5                     8:5    0  3.4G  0 part

  ├─fepserver--vg-root   252:0    0  3.9G  0 lvm  /

  └─fepserver--vg-swap_1 252:1    0    1G  0 lvm  [SWAP]

sdb                        8:16   0    3G  0 disk

└─fepserver--vg-root     252:0    0  3.9G  0 lvm  /

sr0                       11:0    1 1024M  0 rom

 

현재 디스크들의 상태를 간단히 확인할  있다.

 

 

fdisk  통하여

$ sudo fdisk -l

 

Disk /dev/sda: 3.9 GiB, 4185055232 bytes, 8173936 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: dos

Disk identifier: 0x8a4d1bc8

 

Device     Boot   Start     End Sectors  Size Id Type

/dev/sda1  *       2048  999423  997376  487M 83 Linux

/dev/sda2       1001470 8173567 7172098  3.4G  5 Extended

/dev/sda5       1001472 8173567 7172096  3.4G 8e Linux LVM

 

 

Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 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

 

디스크들의 정보를 확인할  있다.

 

 

 

포맷하기

외장하드를 포맷하는 방법이다.

외장하드의 파일시스템을 만드는 방법으로 이미 사용중인 외장하드가 있다면 포맷시 모든 파일을 지워버린다.

 

이미 사용중인 외장하드가 있고 파일을 없애지 말아야 한다면 포맷하지 말아야한다.

 

명령은 :

$ sudo mkfs -t {type} {device}

{type} : 파일시스템 종류

{device} : 기기 경로

 

예를 들어 /dev/sdb 장치를 ntfs 포맷시:

$ sudo mkfs -t ntfs /dev/sdb

 

하드디스크는 ntfs 혹은 fat 파일시스템으로 포맷하기를 추천한다그래야 해당 하드디스크를 윈도우 환경에 연결했을 때도  동작하기 때문이다.

 

 

 

 

 

 

 

Mount 하기

방법1, UUID 마운트(추천재부팅시 자동 mount 유지)

UUID 마운트 하기 위해서는 우선 장치의 UUID 확인해야한다.

 

장치가 연결된 포트 위치에 따라 /dev/sdb, /dev/sdc  바뀔수 있다하지만 UUID 연결 포트가 달라진다해도 하드디스크의 고유의 번호이기 때문에 달라지지 않는다.

 

 

blkid 명령을 이용하여 UUID 정보를 얻는다.

$ sudo 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"

UUID 확인하고 마운트 하면 된다.

 

 

 

예를 들어

UUID : "e38c77a6-0990-44bf-a592-9c156920fb5d"
파일시스템 : ntfs

"nas"  계정의 uid, gid : 500

umask : 027 (owner rwx, group r-x, other ---)

 

$ sudo vi /etc/fstab

UUID=
e38c77a6-0990-44bf-a592-9c156920fb5d  /media2    ext3   defaults,uid=500,gid=500    0    2

$ sudo mount -a

 

 

여기서 umask  권한을 뺏는 거라 생각하면 된다.

r 4, w 2, x 1 이다. 2진값이다. rwx = 421  7이다. rw = 420  6이다.

 

umask 027  소유자에게는 rwx , 그룹에게는 r-x, 그밖에 계정에게는 아무권한을 안주겠다는 것이다해당 옵션은 ntfs,fat  같은 파일의 권한 개념이 없는 파일시스템에서만 사용되는 옵션이다.

 

해당 옵션을  이유는 nas  사용자는 rwx 모든 권한을 가지고 nas  그룹은 r-x  읽기 권한만 가지고 다른 사용자는 어떤 권한도 주지 않기 위해서다.

 

다른 이들과 mount 파일 시스템을 공유하기 위해 계정을 만들어주고 nas 그룹에 넣으면 해당 mount 파일시스템에 읽기 권한만 가지고 읽을  있기 때문에 파일을 수정하거나 삭제할  없어 파일을 보호할  있다.

 

혹은 권한을 775  주고 nas 사용자와 그룹은 rwx 권한을  주고 other r  읽기 권한만  수도 있다.

 

 

 

 

 

방법2, mount 명령을 사용하여 일시적으로 마운트하기(비추재부팅시 unmount)

mount 유지되지 않는다.

 

명령 형식

mount -t {파일시스템} {장치파일} {마운트 포인트}

unmount {장치파일 혹은 마운트 포인트}

{파일시스템 생략해도 된다.

 

)

CD-Rom 마운트

$ sudo mount -t iso9660 /dev/cdrom /media/cdrom

 

NFS 마운트

$ sudo mount -t nfs 123.12.12.1:/nfs /media/nfs

 

 

 

 

 

 

방법3, /etc/fstab 파일로 마운트하기(재부팅시 자동 mount 유지)

/etc/fstab  마운트 내용을 열거하면된다.

 

/etc/fstab 파일에 설정한 장치가 없거나틀릴 경우 부팅 자체가 안될  있으므로 주의하자이때는 시스템 응급복구 모드를 사용하여 복구해야 한다.

 

 

형식

<file system> <mount point> <type> <options> <dump> <pass>

 

 

)

$ sudo vi /etc/fstab

/dev/sda1 /media   ext4     defaults   0 0
UUID=
e38c77a6-0990-44bf-a592-9c156920fb5d  /media2    ext3    defaults    0    2

 

/dev/sda1  마운트는 장치파일 경로로 지정한 것이다장치를 추가하거나 제거할  장치파일 경로가 바뀔수 있다.

UUID 마운트  것은 장치의 고유이름을 사용한 것으로 만약 장치파일의 경로가 바뀐다 하거라도 동일한 경로에 마운트 되는 것을 보장한다.

 

 

/etc/fstab  새로운 마운트 포인트 추가하고 즉시 마운트한다.

$ sudo mount -a

 

 

 

 

 

Mount Option

옵션

설명

defaults

rw, suid, dev, exec, auto, nouser, async 옵션을 모두 가지는 기본 설정

auto

바팅시 자동 마운트

noauto

부팅시 자동 마운트 안함

dev

파일시스템 상의 문자블럭 특수 장치를 해석

nodev

파일시스템 상의 문자블럭 특수 장치를 해석하지 않음

exec

바이너리 실행파일이 실행되는 것을 허용

noexec

바이너리 실행파일이 실행되는 것을 허용 안함

suid

setuid, setgid 사용을 허용

nosuid

setuid, setgid 사용을 거부

ro

읽기 전용 (read-only)

rw

읽기/쓰기 가능(read/write)

async

파일시스템에 대한 I/O 비동기적으로 이루어짐

sync

파일시스템에 대한 I/O 동기적으로 이루어짐

user

일반 계정 사용자들도 마운트   있게 허용

nouser

일반 계정 사용자가 마운트할  없음 ( root  mount 가능)

noatime

파일 접근 시간을 업데이트하지 않음(메일 스풀이나 로그와 같이 I/O  많은 파일 시스템에서 성능 향상)

remount

이미 마운트된 파일시스템을 다시 마운트

uid

mount  해당 마운트의 소유자(user id) 설정(uid 개념이 없는 파일 시스템 마운트에서만 사용)

gid

mount  해당 마운트의 소유 그룹(group id) 설정(gid 개념이 없는 파일 시스템 마운트에서만 사용)

_netdev

네트워크 드라이브 마운트시 네트워크 활성화  마운트 하라는 설정

 

 

 

 

 

 

 

/etc/fstab 사용시 네트워크 드라이브/저장소(nfs, iscsi..) 사용시 대기 문제 해결법(_netdev)

/etc/fstab  네트워크 드라이브/저장소를 자동 mount 하게 설정하는 경우 시스템 재시작시 마운트를 하지 못하여 대기를 하는 경우가 있다.

 

 문제는 시스템이 네트워크를 설정하고 연결하기 전에 /etc/fstab  mount  시도하기 때문이다.

 

 

예를 들어

 

/etc/fstab

 192.168.1.1:/usr/local    /mnt    nfs    defaults     0  0

 

위와 같은 경우 192.168.1.1:/usr/local  대한 mount   네트워크 연결보다 먼저 일어나기 때문에 시스템 시작시 자동 마운트 되지 않는다심한 경우는 해당 경로를 마운트하기 위해 무한대기한다.

 

 

이와 같이 네트워크를 통한 저장소를 /etc/fstab  등록할때에는 mount 옵션에 _netdev  추가해주어야한다.

 

192.168.1.1:/usr/local    /mnt    nfs    defaults,_netdev     0    0

_netdev 옵션은 네트워크에 연결후 마운트하라는 옵션이다이렇게 해야 시스템 시작시 문제 없이 해당 네트워크 경로로 자동 마운트 된다.

 

 

 

 

반응형