이 글 목표
zfs로 부팅 되었습니다!
RHEL on zfs에는 swap이나 tmp에 대해서는 언급이 없었습니다.
그저 몇줄로 이렇게 해라. 하고 끝이었죠.
OpenZFS – Ubuntu Root on ZFS: system configuration
그래서 이 내용은 우분투 튜토리얼에서 발췌했습니다.
로그인
처음 부팅 되면 계정 비밀번호를 물어봅니다.
계정 이름은 root.
비밀번호는 chroot 상태에서 passwd 명령을 입력한 후에 생성한 비밀번호를 이용합니다.
ssh 활성화
설치 과정에서 SSH를 비활성화 했었습니다.
저는 안했지만, 혹시 하신분들은 sshd를 켜줍니다.
sudo systemctl enable --now sshd
/tmp에 tmpfs 마운트
ssd나 hdd인 경우 라즈베리파이의 램이 작아서 tmp에 마운트하는 것은 그다지 추천하지 않습니다.
어차피 zfs는 arc와 zil 때문에 램에 먼저 쓰게 되어있습니다.
하지만 microsd의 경우 수명이 매우 짧기 때문에 조금이라도 사용량을 줄이기위해서 저는 마우느 해주었습니다.
systemctl enable tmp.mount
GUI(그놈 데스크톱) 설치
희망하는 다른 데스크탑 매니저가 있다면 그것으로 설치해도 좋고, CLI로만 사용하시려면 설치하지 않아도 좋습니다.
dnf group install -y "gnome-desktop"
swap – raid를 한 경우
파티션 번호 주의
raid를 하셨다면 mdadm이 필요합니다.
dnf install -y nano mdadm
# 이 변수 안에 디스크들을 넣습니다.
DISK='/dev/disk/by-uuid/UUID1 /dev/disk/by-uuid/UUID2'
mdadm --create /dev/md0 --metadata=1.2 --level=5 \
--raid-devices=$( device_number=0; for i in ${DISK}; do let device_number++;done; echo $device_number ) $(for i in ${DISK}; do
printf "$i-part4 ";
done)
mkswap -f /dev/md0
echo /dev/disk/by-uuid/$(blkid -s UUID -o value /dev/md0) \
none swap discard 0 0 >> /etc/fstab
swap – 단일 디스크인 경우
파티션 번호 주의
# 우리가 생성한 스왑 파티션을 적어줍니다.
# 파티션 번호 주의
PART=/dev/disk/by-id/#ID-part9
mkswap -f $PART
echo /dev/disk/by-uuid/$(blkid -s UUID -o value $PART) \
none swap discard 0 0 >> /etc/fstab
재부팅
이제 끝났습니다.
이미지를 추가할 예정이었는데.. 다 쓰고 보니 시간도 너무 많이 지체되면서 지쳐버렸습니다.ㅠㅠ
이해가 안되는 부분 있으면 언제든 질문 주세요!
정리
이 글로 설치는 모두 끝이 났습니다.
이번에는 ssh를 켜서 로그인하고, tmp 폴더에 tmpfs가 마운트 되도록 하고, gui를 설치하였습니다.
또 raid가 적용된 swap을 만들고 켰습니다.
이제 kernel 업데이트가 10분 걸리던 dkms에서 벗어나
zfs 커널 모듈이 설치되어있음에도 1분이면 설치되는 Kabi Tracking이 되는 kmod zfs를 설치하였습니다.
목차
- 준비물
- 디스크 파티션 및 OS install disk 생성
- 뭔가 이상한(?) live boot disk 만들기
- 이것으로 뭔가 이상한 라이브 부트 이미지로 부팅했습니다.
공식 튜토리얼에 따르면 이제 두줄 진행했어요.ㅎㅎㅎㅎㅎ - zfs 패키지 준비하기 (참조: Custom Packages: rpm)
- boot disk 파티셔닝 (파티션 번호 주의) (참조: RHEL Root on ZFS)
- linux core 설치
- zfs disk로 chroot하여 zfs 설치 및 부트로더 설정
- tmpfs, swap 설정(root on zfs의 ubuntu 참조))
- 주의사항 – 제가 경험한 문제들 (스냅샷, grub2 pc module, dracut location, grub2-mkconfig, kernel-abi abailbility list, passwd 전 selinux 끄기, lib modules/* 사용하지 말기, pv dd로 boot pool 백업하기. )
답글 남기기