안쓰는 디스크를 리눅스 NFS로 사용하기: Ubuntu 24.04

windows로 사용하던 디스크를 홈서버 두대의 공유 스토리지로 사용하려함.

서버1(10.10.10.51)에서 nfs 서버를 실행하고,
서버2(10.10.10.52)에서 홈서버1의 /share 디렉터리를 공유 받아 사용함.

아래 절차를 따라 /share 디렉터리에 NFS 마운트 진행.

  1. 디스크 포맷
  2. /share 디렉터리에 마운트
  3. 서버1에서 NFS 세팅
  4. 서버2에서 NFS 세팅

디스크 포맷

  • lsblk 명령으로 디스크 이름 확인 -> /dev/sdb

  • fdisk 명령으로 기존 파티션 제거 + 새 파티션 하나 생성

# sudo fdisk /dev/sdb

# 파티션 삭제 (1/2)
Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

# 파티션 삭제 (2/2)
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

# 현재 파티션 테이블 출력
Command (m for help): p
Disk /dev/sdb: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZRZ-00Z
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: 48A14857-83E1-4B49-84B8-FDAC957419CE

p로 확인한 결과, 이미 GPT 파티션 테이블을 사용 중이므로 g 커맨드는 생략하고, n 커맨드로 파티션 하나 생성 (0% ~ 100% 전체 사용하는 파티션 하나만 생성)

# 파티션 생성
Command (m for help): n
Partition number (1-128, default 1): (Enter)
First sector (34-3907029134, default 2048): (Enter)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029134, default 3907028991): (Enter)

Created a new partition 1 of type 'Linux filesystem' and of size 1.8 TiB.

# 현재 파티션 테이블 출력
Command (m for help): p
Disk /dev/sdb: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZRZ-00Z
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: 48A14857-83E1-4B49-84B8-FDAC957419CE

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 3907028991 3907026944  1.8T Linux filesystem

# 저장 및 종료
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

/share 디렉터리 마운트

  • 새로 만든 파티션에 ext4 파일시스템 포맷 후 /share 디렉터리에 마운트
sudo mkfs.ext4 /dev/sdb1
sudo mkdir /share 
sudo mount /dev/sdb1 /share
  • /share를 부팅 시 자동 마운트
# sdb1의 UUID 확인 -> "1234"
sudo blkid /dev/sdb1

# sudo vi /etc/fstab
UUID=1234    /share    ext4    defaults    0    2
# :wq

sudo systemctl daemon-reload

디렉터리 권한 수정

일단 권한 다 풀어놓기. (어떻게 보안을 강화할지 나중에 고민하기로함)

sudo chown -R nobody:nogroup /share
sudo chmod 777 /share

NFS서버측(서버1) NFS 세팅

패키지 설치

sudo apt update
sudo apt install nfs-kernel-server nfs-common

설치 시 아래와 같은 에러가 발생할 수 있음 (2025.10.07 기준, nfs-kernel-server가 요구하는 libnfsidmap1 패키지의 버전이 5인데, 현재 시스템에는 5.1이 깔려있어서 버전 불일치로 에러가 발생)

The following packages have unmet dependencies:
nfs-common : Depends: libnfsidmap1 (= 1:2.6.4-3ubuntu5) but 1:2.6.4-3ubuntu5.1 is to be installed
E: Unable to correct problems, you have held broken packages.

에러 발생 시 아래 명령어로 libnfsidmap1을 5버전으로 다운그레이드.

sudo apt install libnfsidmap1=1:2.6.4-3ubuntu5

/etc/exports 파일 수정

홈네트워크 대역에서 /share 디렉터리를 참조할 수 있도록 아래와 같이 수정

/share    10.10.10.0/24(rw,sync,no_subtree_check)

NFS 활성화

# r: reload. /etc/exports 파일 reload.
# a: all. /etc/exports 파일의 모든 공유항목들을 적용.
sudo exportfs -ra

# nfs-server 서비스를 부팅 시 자동실행
sudo systemctl enable nfs-server

방화벽도 nfs포트(2049) 허용 (홈네트워크 대역에서만 허용)

sudo ufw allow from 10.10.10.0/24 to any port nfs

클라이언트측(서버2) NFS 세팅

# 패키지 설치
sudo apt install nfs-common -y
# 디렉터리(마운트포인트) 생성
sudo mkdir /share
# 마운트
sudo mount -t nfs 10.10.10.51:/share /share

sudo vi /etc/fstab
# (추가): 10.10.10.51:/share   /share   nfs   defaults,_netdev,nofail   0 0
# _netdev: 네트워크 준비 되면 마운트 시도
# nofail: 마운트 실패해도 부팅을 중단하지 않음

'Linux' 카테고리의 다른 글

[Linux] sudo 파헤치기  (0) 2026.01.20
Hard Link; 하드링크  (0) 2025.09.02