티스토리 뷰


Disclaimer

개인적으로 SSD에 설치되있던 umbrel 을 HDD로 이전하다가 실패한 경험이 있었습니다.

 

https://twitter.com/btclog29/status/1637764478644420608

 

트위터에서 즐기는 비트 전하는 키팅⚡

“@bitoka_h @my3rdstory 기존에 잘 설치되었던 ~/umbrel 폴더를 그대로 /mnt/hdd/umbrel 폴더로 복사한 후(584G), /mnt/hdd/umbrel 에서 엄브렐을 시작해 보았다. 시작은 잘 되었고 디스크 용량은 기대했던데로 2TB

twitter.com

 

결국 hdd 를 ext4로 포맷하고 처음부터 umbrel 을 다시 설치하는  수고를 겪었지만 hdd 의 파일시스템만 ext4 로 되어 있었다면 파일복사만으로도 이전이 가능했을 것 같다는 생각이 들어서 내용을 정리해 보았습니다. 실제로 검증된 방법은 아님에 유의하시고 혹시 아래 방법으로 umbrel 이전에 성공하셨다면 꼭 피드백을 남겨 주시면 감사하겠습니다.

 

 

Concept

umbrel 의 모든 설치파일은 기본적으로 ~/umbrel 폴더 아래 모두 설치된다. 그러므로 해당 파일들만 외부 스토리지로 복사해서 넘김으로 간단하게 umbrel 을 옮길 수 있다. 그리고 외부 스토리지가 마운트된 경로에서 umbrel 을 다시 시작할 수 있다. 단, 이때 umbrel 이 해당 경로에 쓰기 권한을 가지고 있어야 정상동작 한다. 리눅스에서 외부 HDD의 파일시스템에 권한관리를 하기 위해서는 ext4 파일시스템으로 포맷이 되어 있어야 한다.

 

 

 

HDD가 연결된 경로와 파일시스템 확인

$ df -TH
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs          tmpfs  781M  2.0M  779M   1% /run
/dev/nvme0n1p2 ext4   1.1T  6.3G  950G   1% /
tmpfs          tmpfs  4.0G     0  4.0G   0% /dev/shm
tmpfs          tmpfs  5.3M  4.1k  5.3M   1% /run/lock
/dev/nvme0n1p1 ext4   230M   30M  183M  15% /boot
tmpfs          tmpfs  781M     0  781M   0% /run/user/1000
/dev/sda2      ext4   2.0T  249G  1.7T  14% /mnt/hdd
$

(또는 `sudo fdisk -l` )

 

 

hdd 를 ext4 형식으로 포맷

(리눅스가 hdd 를 인식하고 있는 경로가 /dev/sda2 일 경우)

$ mkfs.ext4 /dev/sda2

Ref) https://myksb1223.github.io/develop_diary/2018/07/31/Manage-partition-and-format-ext4-in-Linux.html

 

 

 

포맷이 끝나면 hdd 를 /mnt/hdd 경로로 마운트

마운트 할 경로 /mnt/hdd 는 임의로 변경 가능

$ sudo mount /dev/sda2 /mnt/hdd

 

 

hdd 에 사용자 계정 권한 부여

$ sudo chown -R user1:user1 /mnt/hdd

 

 

 

파일 복사

파일을 복사하기 전에 기존 umbrel 을 정지시켜야 한다.

$ cd ~
$ ./scripts/stop

 

 

umbrel 파일복사

umbrel 용량에 따라 몇시간 걸릴 수 있음(인내심을 가지고  기다려야 함)

$ cp -r ~/umbrel /mnt/hdd/umbrel

 

이때 터미널을 새로 하나 열어 수시로 hdd 의 용량을 체크해 보면 복사가 잘 진행 중인지 여부를 확인할 수 있다

$ df
Filesystem      1K-blocks      Used  Available Use% Mounted on
tmpfs              762540      1888     760652   1% /run
/dev/nvme0n1p2  983131556   6128476  926988976   1% /
tmpfs             3812696         0    3812696   0% /dev/shm
tmpfs                5120         4       5116   1% /run/lock
/dev/nvme0n1p1     224400     29000     177984  15% /boot
tmpfs              762536         0     762536   0% /run/user/1000
/dev/sda2      1921523920 242214300 1581627804  14% /mnt/hdd

 

파일복사가 끝나면 새로운 umbrel 을 시작해 본다.

$ cd /mnt/hdd/umbrel
$ ./scripts/start

 

 

정상적으로 구동되면 기존 umbrel 삭제

$ rm -rf ~/umbrel

 

 

리눅스 부팅시 hdd 를 자동으로 마운트되도록 설정(가장 마지막  줄)

$ 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>
# / was on /dev/nvme0n1p2 during installation
UUID=c8axxx33-2xxf-4bce-9fc4-5b9dxxxxf518 /               ext4    errors=remount-ro 0       1
# /boot was on /dev/nvme0n1p1 during installation
UUID=66xxxxcc-cc17-4xx1-8xxa-1fadcxxxx6b5 /boot           ext4    defaults        0       2
/swapfile                                 none            swap    sw              0       0
/dev/sda2	/mnt/hdd	ext4	defaults,auto,exec,rw	0	0
$

 

 

마지막으로 리눅스 부팅시 자동시작 설정 경로(ExecStart, ExecStop)를 수정한다.

$ cat /etc/systemd/system/umbrel-startup.service

[Unit]
Wants=network-online.target
After=network-online.target
Wants=docker.service
After=docker.service

# This prevents us hitting restart rate limits and ensures we keep restarting
# indefinitely.
StartLimitInterval=0

[Service]
Type=forking
TimeoutStartSec=infinity
TimeoutStopSec=16min
ExecStart=/mnt/hdd/umbrel/scripts/start
ExecStop=/mnt/hdd/umbrel/scripts/stop
User=root
Group=root
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=umbrel startup
RemainAfterExit=yes
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
$

 

 

 


Trouble shooting

umbrel 시작이 안될 때

아래와 같은 오류가 뜨며 시작이 안될 때,

user@ubuntu:/mnt/hdd/umbrel$ sudo ./scripts/start
sudo: unable to execute ./scripts/start: Permission denied
user@ubuntu:/mnt/hdd/umbrel$

workaround)

hdd 를 언마운트하고 디스크 검사를 한다 그리고  다시 umbrel 을 시작해 본다.

sudo umount /dev/sda2
sudo fsck /dev/sda2

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함