PXE를 통해 부팅하는 데 사용되는 인터페이스 결정

PXE를 통해 부팅하는 데 사용되는 인터페이스 결정

PXE를 통해 부팅된 Linux 상자가 있습니다. 실행하는 데 사용되는 네트워크 인터페이스를 결정할 수 있습니까?

답변1

PXELINUX를 사용한다고 가정하는 경우.

플래그가 있습니다 IPAPPEND. 로 설정하면 PXELINUX가 커널 명령줄에 2인수를 추가하게 됩니다 . BOOTIF=<hardware-address-of-boot-interface>그러면 사용된 인터페이스를 식별하는 데 사용할 수 있는 MAC 주소가 있습니다.

http://www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D

답변2

IPAPPEND=2저는 수년 동안 PXELINUX를 사용해 왔습니다 . 하지만 최근에 EFI PXE 부팅으로 전환해야 했고, 대부분의 사람들은 PXELINUX보다 GRUB를 선호하는 것 같습니다.

GRUB EFI PXE 부트 로더는 $net_default_mac부트 인터페이스의 MAC 주소를 포함하는 변수를 정의합니다. 이를 사용하여 커널 명령줄에 MAC 주소를 추가할 수 있지만 IPAPPEND=2두 가지 면에서 PXELINUX 값과 다릅니다.

  1. 01하드웨어 유형 접두사 바이트( =Ethernet)는 포함되지 않습니다.
  2. ba:98:76:54:32:10대시 대신 콜론을 사용하여 옥텟을 구분합니다(예 01-ba-98-76-54-32-10: ).

PXELINUX 형식이 필요한 일부 스크립트가 있으므로 BOOTIFGRUB 구성에 복사하고 싶습니다.

불행하게도 GRUB의 텍스트 조작 기능은 거의 존재하지 않는 것 같습니다. 나는 사용할 것이다정규식다음과 같이 명령하세요:

set dd="[0-9a-f][0-9a-f]"

regexp --set 1:o1 --set 2:o2 --set 3:o3 --set 4:o4 --set 5:o5 --set 6:o6 \
    ($dd):($dd):($dd):($dd):($dd):($dd) \
    $net_default_mac

set hwaddr="01-$o1-$o2-$o3-$o4-$o5-$o6"

menuentry  'My Linux' --class fedora --class gnu-linux --class gnu --class os {
   linuxefi my-kernel-image BOOTIF=$hwaddr
   initrdefi my-initramfs.img
}

관련 정보