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 값과 다릅니다.
01
하드웨어 유형 접두사 바이트( =Ethernet)는 포함되지 않습니다.ba:98:76:54:32:10
대시 대신 콜론을 사용하여 옥텟을 구분합니다(예01-ba-98-76-54-32-10
: ).
PXELINUX 형식이 필요한 일부 스크립트가 있으므로 BOOTIF
GRUB 구성에 복사하고 싶습니다.
불행하게도 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
}