개요
멀쩡히 물리적으로 분리했던 TrueNAS를 다시 Proxmox로 통합하다가, 부팅디스크 이미지 파일에 결함이 생겼는지, “middleware is not running. Press Enter to open root shell”에러가 뜨면서 부팅을 할 수 없는 상황이 발생했습니다.
journalctl로 살펴보니 단순한 오류도 아니었기 때문에, systemctl restart middlewared, service middlewared restart 따위로는 해결되지 않는 상황이었기 때문에
TrueNAS를 클린설치하고 기존 부팅디스크에서 설정파일을 추출(recover)해와서 살려보겠습니다.
기존 설정파일 추출하기
System Dataset에서 추출하기
System Dataset에서 추출하는 방법은 아래 글을 참조해 주세요.
2025.01.23 - [TrueNAS] - TrueNAS 부팅 안될 때 자동백업파일 추출하기(2)
TrueNAS 부팅 안될 때 자동백업파일 추출하기(2)
개요얼마 전 TrueNAS의 boot-pool에서 백업파일을 추출하는 글을 작성한 적이 있습니다.2025.01.23 - [TrueNAS] - TrueNAS 부팅 안될 때 설정파일 추출하기(1) TrueNAS 부팅 안될 때 설정파일 추출하기(1)개요멀
worklazy.net
TrueNAS는 제일 처음 생성하는 Pool에 system dataset을 설정하고 log, 설정 등등을 그 곳에 저장합니다. 또한, 시스템에 의해 자동적으로 백업되는 설정파일도 이 곳에 저장됩니다.
부팅디스크만 망가졌고, 다른 zpool들은 모두 살아있기 때문에, 임시로 TrueNAS를 새로 설치하고 pool을 import하면 확인할 수 있…어야 합니다..만,
제 경우 해당 폴더에 아무 것도 없었습니다.
zfs list
해당 폴더의 경로는 /var/db/system/configs-ae32c386e13840b2bf9c0083275e7941입니다.
ls -lah /var/db/system/configs-ae32c386e13840b2bf9c0083275e7941
아무고토 보이지 않아..ㅜ
아무것도 없었습니다 =ㅅ=..혹시나 해서 모든 풀을 import하고 살펴보았지만… 제가 어떤 순서를 꼬았는지 아무런 파일도 없었습니다.
원래대로면 아래 사진처럼 무엇인가 잔뜩 있어야 했습니다.
TrueNAS를 재설치해서 편하게 가는 게 아니라 다른 리눅스에서 import해봤으면 어땠을까 싶습니다..ㅠ_ㅠ
Boot-Pool에서 추출하기
부팅디스크가 물리적 결함으로 망가진 것이 아니라면(배드섹터라던가), 사용하던 부팅디스크를 다른 리눅스에 물려서 추출할 수도 있습니다.
TrueNAS의 부팅디스크는 당연히 ZFS를 사용하기 때문에, ZFS를 원활히 사용할 수 있는 OS를 준비해야 합니다. 만만하면 우분투죠.
실제 베어메탈에서 TrueNAS를 사용했다면 부팅용 USB혹은 SSD, Proxmox나 ESXi등에서 사용했다면 가상디스크 이미지를 우분투에 물려준 후 부팅합니다.
lsblk로 부팅디스크가 제대로 인식되고 있는지 확인합니다.
lsblk
32기가 Mirror로 구성했던 이미지 두 개를 잘 인식하고 있음을 확인합니다.
그리고 우분투에서 ZFS를 설치하고 활성화(?)합니다.
sudo apt install zfs-dkms
sudo modprobe zfs
설치가 완료되었다면 zpool list를 확인합니다.
zpool list
여기서 rpool 혹은 boot-pool 나타난다면 바로 zfs set mountpoint로 진행하면 되겠지만, 저 같은 경우는…
no pool available
와 같이 출력되며 pool을 인식하지 못했습니다.
여기부터 방법이 두 가지가 있습니다. 둘 다 시도해보고 가능한 방법을 사용하시면 됩니다.
- 부팅디스크가 단일디스크일 경우
아래 명령어를 입력해 디스크id를 확보합니다.
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'
개인환경마다 다르겠지만, 아래와 비슷하게 출력될 겁니다.
여기서 부팅디스크였던 디스크id를 긁어서 복사한 뒤, 아래처럼 입력해 zpool을 import할 수 있습니다.
zpool import -f -a -d /dev/disk/by-id/ata-QEMU_HARDDISK_QM00015
- 2개 이상이었을 경우
아래처럼 입력합니다.
zpool import -f -o readonly=on boot-pool
readonly=off라고 할 경우, 지원되지 않는 기능이 있어 에러가 출력됩니다.
readonly=on으로 할 경우 별다른 메세지가 출력되지는 않지만, zpool list, zfs list로 풀을 확인할 수 있게 됩니다.
zpool list
zfs list
출력된 dataset 중 ‘자동백업되는 config’는 /var/db/system…에 있고 시스템에서 default로 사용되던 config는 /data에 있습니다.
제 경우 /var/db/system쪽에는 여전히 파일이 없었고, /data에는 파일이 있었습니다.
해당 dataset을 마운트하려면 root로 아래와 같이 입력해야 합니다.
mkdir /mnt/test
mount -t zfs -o zfsutil boot-pool/ROOT/24.04.1.1/data /mnt/test
df -h
그러면 아래와 같이 “data” dataset이 마운트 되었음을 확인할 수 있고
ls -lah /mnt/test
아래의 파일을 확인할 수 있습니다.
이제 이 파일을 가져와서 TrueNAS에 복원시키면 됩니다.
SFTP, SCP등을 이용해서 가져와도 되고, 우분투니까 삼바서버 등을 구성해서 네트워크로 가져올 수도 있고, GUI가 있는 환경이라면 그냥 네이버 메일 로그인해서 내게 쓰기 해도 되겠죠 =ㅅ=;
저는 홈폴더에 가져와서 소유자를 변경 후 SFTP로 다운받았습니다(소유자 변경 안하면 접근권한이 없어 다운로드 불가).
cp /mnt/test/freenas-v1.db /home/fenta/
chown fenta:fenta /home/fenta/freenas-v1.db
TrueNAS 복원
System Settings – General – Manage Configuration – Upload File 로 순차적으로 진입해 가져온 파일을 넣어주면 끝납니다.
복원하신 후, 삼바 공유로 사용하는 계정이 로그인 시 패스워드 불일치 문제가 발생할 수 있습니다.
Credentials – Local Users – 해당하는 계정 클릭 해서 같은 비밀번호로 다시 한 번 설정만 해주면 문제없이 사용할 수 있게 됩니다.
이 방법은 TrueNAS에서 사용하던 디스크들은 모두 정상이고, TrueNAS 부팅 환경에만 문제가 생겼을 때 사용할 수 있습니다.
가지고 있던 데이터 자체에 문제가 생겼을 땐, 데이터 복구를 위한 방법을 알아보시는게 좋습니다.
출처
1. https://www.truenas.com/community/threads/getting-config-from-broken-boot-drive.116845/
Getting config from broken boot drive
Hi everyone, My bootpool broke after replacing one of my SSD's (see my other post in the hardware forum), i can't boot anymore. It's stuck at Grub (not the rescue variant). And you've guessed it: I don't have a backup of my config file. I believe all the d
www.truenas.com
How to recover and upload a config file from an imported pool?
Hi Folks, First off if this has been asked and answered I apologize, I've been looking at the threads for the last hour and can't seem to find the answer. The short version of the story is that the SSD containing my TruenNAS OS bit the dust, I have gotten
www.truenas.com
3. https://svrforum.com/os/431881
Ubuntu 22 에서 ZFS를 설치하고 사용하는방법.
안녕하세요. 달소입니다. 이번편은 ZFS를 Ubuntu에서 직접 사용하는방법입니다. ZFS의 경우 Ubuntu에서 사용되는 보편적인 파일시스템인 ext4와 비교하여 여러가지 장점이 있으며 가장 큰 장점은 lz4
svrforum.com