이번에 Linux를 Main OS로 변경했지만, Sub OS로 Windows도 사용하고 있는 상황입니다. 그러다보니 HDD를 따로 두고 사용하는 게 아무래도 비효율적인 것 같아서 어떻게 공유해서 사용할 수 있을까를 고민한 결과 약간의 삽질 끝에 방법을 찾게되었습니다. 이 글은 Ubuntu 20.04 - LTS
를 기준으로 작성되었습니다.
HDD Format
우선 OS 간 FileSystem이 다르기 때문에 이를 함께 사용하려면 exFat
로 format된 HDD가 필요합니다. NTFS
로 format된 경우라도 ReadOnly로는 마운트가 가능하고 Mount Option을 RW로 변경하면 사용이 가능하지만, 상호 간에 FileSystem 호환성이 떨어져서 그다지 추천하는 방법은 아니라고 합니다. Ubuntu에서 NTFS에 File을 Write하는 경우 Windows 10에서 해당 파일을 인식하지 못하고 삭제된 적이 있다는 글을 읽은 적이 있어서 저는 시도해보지 않았지만, 별 문제없이 사용하고 있다는 사람도 있는 듯합니다.
저는 이럴 때 쓰라고 만든 exFat
을 사용하도록 하겠습니다.
Linux에서 exFat
을 사용하기 위해서는 다음 명령어를 통해서 Package를 설치해주어야 합니다.
sudo apt-get install exfat-fuse exfat-utils
Docker와 Disk Volume 연결
Mount된 Driver는 보통 host의 /media/${사용자이름}/${disk UUID}
를 통해 접근이 가능합니다.
정상적으로 Mount된 경우라면 해당 경로를 통해 Disk UUID를 확인할 수 있습니다.만약 클릭이 귀찮다면 alt + ctrl + t
를 통해 command를 열고 ls -al /dev/disk/by-uuid/
를 입력해서도 확인이 가능합니다.
Mount on boot
윗 단계까지는 매우 수월하고 간단하게 물 흐르듯이 해결되었는데, 제가 가장 고민했던 부분이 바로 이 부분이었습니다.
해당 HDD에 존재하는 데이터가 Linux를 reboot한 뒤 다시 들어가보면 아무 것도 없는 상태로 나타나는 현상이 있었습니다.
그래서 /media/${사용자이름}
폴더에 가보니 기존에 Mount되었던 폴더 D7E3-00EC
가 아니라 D7E3-00EC1
로 Mount가 된 것을 확인했습니다.
이는 Linux가 Booting될 때 해당 Disk를 mount하지 않아서 일어난 문제로, 이러한 Human error를 방지하기 위해서는 Booting시에 자동으로 Mount를 시켜주는 작업이 필요했습니다.
CLI
위에 소개했던 명령어 ls -al /dev/disk/by-uuid/
를 통해서 auto-mount 하려는 Disk의 UUID를 확보한 뒤, sudo vim /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>
# / was on /dev/sdb1 during installation
UUID=63a46dce-b895-4c1f-9034-b1104694a956 / ext4 errors=remount-ro 0 1
# swap was on /dev/sdb5 during installation
UUID=b9b9ee49-c69c-475b-894b-1279d44034ae none swap sw 0 0
맨 아래에 다음을 추가합니다.
# Data Drive
UUID=${disk UUID} /media/${사용자이름}/${disk UUID} exfat-fuse defaults 0 0
UUID에는 mount하려는 Disk의 UUID를 입력하고, mount point에는 Host의 경로를 입력합니다.
다음으로 입력해야 할 것이 FileSystem인데, exFat을 사용하는 경우라면 exfat-fuse
를 입력해야 정상적으로 Mount됩니다.
만일 fat32
로 format한 Disk라면 vfat
을 입력하면 됩니다.
그 다음에 입력할 부분은 Mount options인데요, 특별한 이유가 없다면 default로 설정해주면 됩니다.
dump는 말 그대로 dump로 backup할 지 여부,
pass는 file system check가 필요하다면 설정해주면 되지만 저는 전부 필요 없으므로 0으로 설정했습니다.
여기까지 했다면 다음 명령어를 통해서 fstab
설정을 테스트해 볼 수 있습니다.
이것이 정상적으로 성공했다면 다음 Booting 시부터 자동으로 해당 Disk가 Mount될 것입니다.
sudo mount -a
GUI
이전 버전 Ubuntu의 사정은 잘 모르지만, 20.04 - LTS
버전에서는 Disks
유틸이 존재합니다.
이곳에서 Edit Mount Options
를 눌러 나오는 Mount at system startup
옵션에 체크를 통해서 아주 간단하게 해당 기능을 사용할 수 있습니다.