슬랙웨어 설치할 때 initrd.gz에서 멈추는 경우 해결하기
슬랙웨어는 안정버전의 업데이트가 잦지 않기 때문에 새로운 하드웨어에 설치할 때 종종 문제가 발생한다. 설치 USB 드라이브를 부팅할 때 initrd.gz에서 멈추는 경우가 있다.
# 설치 USB 드라이브를 만든다.
sh usbimg2disk.sh -f -s /path/to/slackware64-version -o /dev/sdX
# 드라이브를 마운트한다.
mount /dev/sdX /mnt
# EFI 디렉토리는 삭제한다.
cd /mnt
rm -rf EFI
# EFI 디렉토리를 새롭게 복사한다.
cp -a /path/to/slackware64-version/EFI /mnt
# /mnt/EFI/BOOT/grub.cfg를 수정한다.
# /kernels/huge.s/bzImage => /EFI/BOOT/huge.s
# /isolinux/initrd.img => /EFI/BOOT/initrd.img
umount /mnt
이제 설치 USB 드라이브로 부팅이 되고 설치까지 완료할 수 있다. 이렇게 ThinkStation P360 Ultra를 성공적으로 설정했었다.
그런데, 2023 년 6월 8 일 오늘 ThinkPad X1 Yoga Gen 8에 같은 방법으로 설치는 했으나 설치 후 부팅시 initrd.gz에서 다시 멈췄다. ThinkStation P360 Ultra의 경우 ELILO를 설치하면 부팅이 되었는데 이번에는 달랐다. 그래서 Grub으로 바꿀 수 밖에 없었다. 과정은 대략 이렇다.
- 위에서 만든 설치 USB 드라이브로 정상적으로 패키지 설치까지 마친다.
- 그 다음 LILO와 ELILO 모두 설치를 건너 뛰고 설정을 마무리한다.
- setup를 빠져 나올 때 Shell을 선택해서 셸로 빠진다.
chroot /mnt grub-install --removable /dev/nvme0n1 # 또는 /dev/sda # CURRENT에서는 --removable 옵션이 필요했다. # 설치한 다음 재부팅후에는 --removable 옵션이 필요없었고 # grub-install /dev/nvmeXn1를 다시 실행해야 BIOS의 # Boot Order에 등록이 된다. # 짐작하자면 Grub가 업데이트되면서 /boot/efi 디렉토리의 # 물리적인 위치를 확인하는데 chroot되기 전의 위치는 # /mnt/boot/efi 때문이지 않을까? grub-mkconfig -o /boot/grub/grub.cfg exit reboot
이렇게 부팅이 되었다.
그러나 다른 문제가 기다리고 있었다. 리눅스 커널 5.15.19가 Intel Raptor Lake-P [Iris Xe Graphics] (PCI ID 0xA7A0) 카드를 지원하지 않았다! 이 문제는 커널 5.19.17을 직접 컴파일해서 해결해야 할 듯하다. SlackBuild를 가져와서 실행하니 커널 소스 패키지까지만 만들고 멈춰버렸다. 그냥 슬랙웨어 CURRENT로 가야겠다.