grub2를 사용하여 pxelinux와 같은 심볼릭 링크를 만들고 싶습니다. 하지만 어떻게 해야할지 모르겠습니다. 목표는 IP에 동적으로 전달할 수 있는 다양한 프로필을 갖는 것입니다.
지금까지는 Grub2가 작동하지만 IP에 대한 다른 구성 파일을 제공할 수 없으며 항상 grub.cfg가 필요합니다. 또한 실제로 사용하려는 구성 파일에 대한 심볼릭 링크인 grub.cfg-IP -> 다른 구성 파일 ->도 시도했습니다.
어쩌면 누군가가 이것을 알아 냈을 수도 있습니다. Grub2 매뉴얼은 별로 도움이 되지 않습니다.
답변1
PXELINUX는 "심볼릭 링크를 실행"하지 않습니다. 단순히 이름에 클라이언트의 IP나 MAC 주소 또는 그 일부가 포함된 구성 파일을 다운로드합니다. 일치하는 파일이 심볼릭 링크라는 사실은 전적으로 사용자와 해당 파일을 PXELINUX에 제공하는 TFTP 서버 사이의 문제입니다.
PXELINUX와 달리 GRUB는 기본적으로 단일 구성 파일만 찾습니다 grub.cfg
. 이것이 당신이 제공해야 할 것입니다. GRUB이 클라이언트의 IP 주소에 따라 이름이 달라지는 구성 파일을 사용하도록 하려면 GRUB에 이를 알려주어야 합니다.
그런 다음 해당 프로필은 GRUB에 다른 프로필을 로드하도록 지시할 수 있으며 이름을 지정할 때 GRUB 환경 변수를 사용할 수 있습니다.
따라서 GRUB이 이라는 구성 파일을 사용하도록 하려면 grub.cfg-<IP address>
먼저 grub.cfg
GRUB가 예상하는 위치에 매우 작은 파일을 생성하고 다음과 같이 읽어야 합니다.
configfile grub.cfg-${net_default_ip}
그러면 GRUB에 클라이언트의 IP 주소가 뒤에 붙은 파일 이름을 사용하여 새 구성 파일을 다운로드하도록 지시해야 합니다.
절대 경로를 사용하여 새 구성 파일을 지정할 수도 있습니다.
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 부팅 이미지에 이 한 줄 구성을 포함 할 수 있습니다.
클라이언트가 올바른 정보를 받고 있는지 확인하고 차례로 올바른 파일을 요청하는 것과 tcpdump
같은 방법을 사용하여 PXE 클라이언트와 DHCP/TFTP 서버 간의 네트워크 트래픽을 덤프하는 것이 유용하다는 것을 알았을 것입니다 . 그렇죠?wireshark