![pxelinux와 같은 grub2와의 심볼릭 링크](https://rvso.com/image/154446/pxelinux%EC%99%80%20%EA%B0%99%EC%9D%80%20grub2%EC%99%80%EC%9D%98%20%EC%8B%AC%EB%B3%BC%EB%A6%AD%20%EB%A7%81%ED%81%AC.png)
나는 grub2를 사용하여 pxelinux와 같은 심볼릭 링크를 만들고 싶습니다. 하지만 방법을 알 수 없습니다. 목표는 IP에 동적으로 전달할 수 있는 다양한 구성 파일을 갖는 것입니다.
Grub2는 지금까지 작동하지만 IP에 다른 구성 파일을 제공할 수 없으며 항상 grub.cfg를 사용합니다. grub.cfg-IP -> 다른 구성 파일 -> 실제로 사용하려는 구성 파일에 대한 심볼릭 링크도 시도했습니다.
어쩌면 누군가가 이미 이것을 알아냈을 수도 있습니다. Grub2 매뉴얼은 별로 도움이 되지 않았습니다.
답변1
PXELINUX는 "심볼릭 링크를 수행"하는 것이 아닙니다. 이름에 클라이언트의 IP나 MAC 주소 또는 그 일부가 포함된 구성 파일을 다운로드하는 것뿐입니다. 일치하는 파일이 심볼릭 링크라는 사실은 전적으로 사용자와 해당 파일을 PXELINUX에 제공하는 TFTP 서버 사이의 문제입니다.
grub.cfg
PXELINUX와 달리 GRUB은 기본적으로 단일 구성 파일만 찾습니다 . 그래서 공급해야 하는 것입니다. GRUB에서 이름이 클라이언트의 IP 주소에 따라 달라지는 구성 파일을 사용하도록 하려면 이를 GRUB에 알려야 합니다.
그런 다음 해당 구성 파일은 GRUB에 다른 구성 파일을 로드하도록 지시할 수 있으며 이름을 지정할 때 GRUB 환경 변수를 사용할 수 있습니다.
따라서 GRUB에서 이름이 지정된 구성 파일을 사용하려면 grub.cfg-<IP address>
먼저 GRUB가 예상하는 위치에 최소한의 grub.cfg
파일을 생성하고 다음과 같이 말하도록 해야 합니다.
configfile grub.cfg-${net_default_ip}
그러면 파일 이름 뒤에 클라이언트 IP 주소가 붙은 새 구성 파일을 다운로드하도록 GRUB에 지시해야 합니다.
다음과 같은 절대 경로로 새 구성 파일을 지정할 수도 있습니다.
configfile (tftp,${net_default_server})/some/path/grub.cfg-${net_default_ip}
grub.cfg
새 구성 파일을 정의하는 한 줄만 포함된 별도의 파일을 갖고 싶지 않다면 grub-mkimage -c <grub.cfg containing the configfile command> -O i386-pc-pxe <other parameters...>
(또는 사용 중인 아키텍처를 사용하여) 이 한 줄 구성을 GRUB PXE 부팅 이미지에 포함할 수 있습니다.
PXE 부팅이 작동하는 데 문제가 있는 경우 PXE 클라이언트와 DHCP/TFTP 서버 간의 네트워크 트래픽을 덤프하거나 클라이언트가 올바른지 확인하는 것이 tcpdump
유용 하다는 것을 이미 발견했을 것입니다. wireshark
정보를 확인하고 올바른 파일을 차례로 요청하는 중... 맞죠?