개요
얼마 전 TrueNAS의 boot-pool에서 백업파일을 추출하는 글을 작성한 적이 있습니다.
2025.01.23 - [TrueNAS] - TrueNAS 부팅 안될 때 설정파일 추출하기(1)
TrueNAS 부팅 안될 때 설정파일 추출하기(1)
개요멀쩡히 물리적으로 분리했던 TrueNAS를 다시 Proxmox로 통합하다가, 부팅디스크 이미지 파일에 결함이 생겼는지, “middleware is not running. Press Enter to open root shell”에러가 뜨면서 부팅을 할 수 없
worklazy.net
그러나 해당 글을 통해 추출한 파일은 기초설정만 살아있는 파일로, share 목록 등은 건져내지 못합니다.
이번 글은, TrueNAS에서 매일 자동 백업되는 설정파일을 추출하는 글입니다.
추출 환경 준비하기
우분투를 사용할 수 없는 이유
이전 글은 우분투를 사용했지만, TrueNAS 24버전 기준에 맞게, 모든 ZFS풀의 업그레이드를 마쳤다면, 아래처럼 오류가 나며 zpool import를 할 수 없게 됩니다.
root@ubuntu:~# zpool import -f -o readonly=on storage
This pool uses the following feature(s) not supported by this system:
com.klarasystems:vdev_zaps_v2
cannot import 'storage': unsupported version or feature
해당 ‘com.klarasystems:vdev_zaps_v2’ 속성이 readonly도 막아버리기 때문입니다(readonly compatitable=no).
다행히 Proxmox에서는 이 zpool을 무리없이 import할 수 있으므로 Proxmox에서 수행해보겠습니다.
System Dataset에서 설정 파일 추출하기
Proxmox에 MobaXterm등을 이용해 SSH로 접속합니다.
(Proxmox 웹 환경에서 바로 Shell을 쓸 수 있는데 굳이? 싶으시겠지만, 추출해낸 파일을 편하게 다운받으려면 이 방법이 좋기 때문입니다.)
TrueNAS에서 사용하던 디스크를 연결한 뒤 zpool import를 입력합니다.
해당 명령어는 import되지 않은 zpool을 모두 보여줍니다.
root@fenta:~# zpool import
그러면 아래처럼 결과를 볼 수 있습니다.
pool: media
id: 15878658031923720337
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
media ONLINE
raidz2-0 ONLINE
76ade51e-d42e-11ed-b4f8-4dc133087d01 ONLINE
76998f64-d42e-11ed-b4f8-4dc133087d01 ONLINE
76d94ab3-d42e-11ed-b4f8-4dc133087d01 ONLINE
76725110-d42e-11ed-b4f8-4dc133087d01 ONLINE
76e38bb2-d42e-11ed-b4f8-4dc133087d01 ONLINE
76cfc3c4-d42e-11ed-b4f8-4dc133087d01 ONLINE
76a326bf-d42e-11ed-b4f8-4dc133087d01 ONLINE
768f2118-d42e-11ed-b4f8-4dc133087d01 ONLINE
pool: pds
id: 13393763003900774857
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
pds ONLINE
raidz2-0 ONLINE
58d23d72-cba5-4f31-8cd6-b2cce39f983d ONLINE
7eb708bd-778b-47eb-927e-a44c14ea213e ONLINE
4661a086-4801-4953-a8bb-b838fa5a35a6 ONLINE
bfa006b4-0478-4d00-8ac9-7bf8530ee7c7 ONLINE
pool: k8s
id: 10260077198865834824
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
k8s ONLINE
mirror-0 ONLINE
7459ccbe-94c6-4f63-8d42-bf8cc0ec0350 ONLINE
f3acf0d8-01e5-4117-8fc7-4cb9ad7d6d10 ONLINE
pool: storage
id: 11822224687889589541
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
storage ONLINE
raidz2-0 ONLINE
04eab04b-01f9-481e-9683-30d6b2970a85 ONLINE
046ffc38-c861-4a6e-89c5-558102bce9ed ONLINE
134078e5-b246-4de5-8f71-25827cf2386d ONLINE
0337af98-4ac2-4c9a-9591-fb7339ad246a ONLINE
TrueNAS의 System Dataset은 보통 제일 먼저 생성된 풀에 만들어집니다.
그러나, 어떤 풀을 먼저 만들었는지 기억 못할 수도 있고, 저처럼 환경을 바꾸면서 통째로 import하면서 기억이 안날 수도 있습니다 =ㅅ=;
그러니 media풀부터 하나씩 import해보겠습니다.
root@fenta:~# zpool import media -f
root@fenta:~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
.
.
media 36.6T 25.3T 239K /media
media/.system 2.39G 25.3T 1.23G legacy
media/.system/configs-ae32c386e13840b2bf9c0083275e7941 7.74M 25.3T 5.64M legacy
media/.system/cores 205K 1024M 205K legacy
media/.system/netdata-ae32c386e13840b2bf9c0083275e7941 1.14G 25.3T 460M legacy
media/.system/samba4 5.64M 25.3T 717K legacy
media/VA 1.03T 25.3T 1.03T /media/VA
media/backup 4.37T 25.3T 4.37T /media/backup
media/media 31.1T 25.3T 31.1T /media/media
rpool 80.9G 369G 104K /rpool
rpool/ROOT 80.8G 369G 96K /rpool/ROOT
rpool/ROOT/pve-1 80.8G 369G 80.8G /
rpool/data 96K 369G 96K /rpool/data
한 방에 찾았네요..=ㅅ=?
media/.system/configs-블라블라 폴더가 저희가 접근해야 하는 폴더입니다.
TrueNAS UI에서 우리가 생성해서 사용했던 dataset들은 자동적으로 마운트포인트가 잡히지만(마운트가 이루어지지만),
system dataset은 그렇지 않으므로, 마운트할 경로를 생성하고 마운트해주면 됩니다.
root@fenta:~# mkdir -p /mnt/databackup
root@fenta:~# mount -t zfs media/.system/configs-ae32c386e13840b2bf9c0083275e7941 /mnt/databackup
root@fenta:~# ls /mnt/databackup
그러면 아래처럼, 버전이 명시된 폴더를 확인할 수 있습니다.
해당 폴더 안의 내용을 들여다보면, 일별로 자동저장된 설정파일을 확인할 수 있습니다.
root@fenta:~# ls /mnt/databackup/TrueNAS-SCALE-24.04.2
Proxmox에 root로 로그인했다면 이대로 다운로드 받으면 되고, 아니라면 다른 곳에 복사, 권한 부여 후 다운로드 받으면 됩니다.
다운로드 후 Proxmox에서는 해당 zpool을 다시 제거해야 합니다.
root@fenta:~# zpool export media
복원은 이전 글과 마찬가지로 진행하시면 됩니다.
마무리
Proxmox환경에서 부팅디스크 이미지 파일로 사용하는 TrueNAS는 많이 불안정한가 봅니다.
이 글을 두 번째 작성하게 되는 이유는, TrueNAS를 재부팅할 때 setting up plugins 단계에서 7분을 기다려도 middleware를 시작하지 못하다가 결국
middleware is not running 상태로 빠지면서 부팅에 실패했기 때문입니다.
레딧 등을 찾아보니, USB드라이브 등을 이용한 부팅 환경에서 많이 발생하는 것 같네요.
버전이 높아지면서 기능도 많아지고 무거워지다보니 이런 일이 발생하는건가 싶습니다.
복구하는 TrueNAS는 SSD를 패스스루해줄 예정입니다…ㅠ