슬랙웨어 설치할 때 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으로 바꿀 수 밖에 없었다. 과정은 대략 이렇다.

  1. 위에서 만든 설치 USB 드라이브로 정상적으로 패키지 설치까지 마친다.
  2. 그 다음 LILO와 ELILO 모두 설치를 건너 뛰고 설정을 마무리한다.
  3. setup를 빠져 나올 때 Shell을 선택해서 셸로 빠진다.
  4. 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로 가야겠다.

참고문헌

이 칸을 비워 두세요.