netconsole을 사용하여 netinstall 이미지 시작 기록

netconsole을 사용하여 netinstall 이미지 시작 기록

netconsole다음 문서를 사용하여 로컬 네트워크의 이더넷 인터페이스를 통해 다른 장치에 커널 부팅 메시지를 기록하려고 합니다.https://www.kernel.org/doc/Documentation/networking/netconsole.txt, 나는부터 시작했다답변또 다른 문제.

나는 네트워크를 구성할 때까지 Debian Netinstall을 거쳐 ip address인터페이스가 enp2s0, IP 주소가 192.168.88.17, MAC이 이라는 것을 알게 되었습니다 d0:50:99:83:4d:25. IP가 임대 상태로 남아 있는지 확인하기 위해 라우터의 인터페이스를 열었습니다.

재부팅하고 커널의 부팅 매개변수를 수정했습니다.

setparams 'Graphical install'

    set background_color=black
    linux    /install.amd/vmlinuz vga=788 --- quiet
    initrd   /install.amd/gtk/initrd.gz

도착하다:

setparams 'Graphical install'

    set background_color=black
    linux    /install.amd/vmlinuz vga=788 [email protected]/enp\
2s0,[email protected]/14:f6:d8:b3:99:5d
    initrd   /install.amd/gtk/initrd.gz

F10이 매개변수로 시작합니다 . 바로 syslogUSB 드라이브에 복사했습니다 . 나는 그것을 다시 읽었다. 커널 매개변수가 승인되었음을 syslog나타냅니다 .cat /proc/cmdline

시작하기 전에 대상 Fedora 워크스테이션에서 nc -u -l 6666포트를 청취했지만 아무 것도 나타나지 않았습니다.

vga=788제거 하고 추가해 보았지만 ignore_loglevel여전히 메시지가 없습니다.

lsofDebian Netinstall에서는 사용할 수 없습니다.

제대로 하려면 무엇을 확인해야 하나요? 문제를 일으키는 비슷한 이미지로 할 수 있도록 먼저 Debian Netinstall을 사용하여 이 작업을 시도했습니다.


테스트하기 위해 네트워크를 구성하는 동안 실행 중인 Debian Netinstall을 호출해 보았지만 netconsole다음 메시지를 받았습니다.

~ # insmod netconsole neconsole=@/,@192.168.88.21/
insmod: ERROR: could not load module netconsole: No such file or directory
~ # modeprobe netconsole
modprobe: FATAL: Module netconsole not found in directory /lib/modules/5.10.0-22-amd64
~ # lsmod | grep console

netconsoleDebian Netinstall에는 전혀 포함되어 있지 않은 것 같습니다 . 커널 부팅 메시지를 받기 위한 다른 옵션은 무엇입니까?

답변1

로그는 Debian 설치 프로그램을 실행하는 컴퓨터에서 얻을 수 있습니다 ssh. 예를 들어, 이를 통해 syslogGRUB2 화면에서만 작동하고 커널이 부팅된 후에는 작동하지 않는 USB 키보드가 있는 컴퓨터에서 정보를 얻을 수 있습니다. 이를 위해서는 network-console사전 시딩이 필요합니다. GRUB2에서 직접 커널 부팅 매개변수에 URL을 추가하여 로컬 네트워크를 통해 프로비저닝하기로 결정했습니다. 다른 프로비저닝 방법은 데비안 설치 프로그램 문서에 제공됩니다. 나에게 도움이 된 사전 설정 프로필은 다음과 같습니다.

$ cat ~/www/preseed.cfg
# It is necessary to define language settings for ssh to run.
# By example from: https://www.debian.org/releases/bookworm/example-preseed.txt
d-i debian-installer/locale string en_US
d-i keyboard-configuration/xkb-keymap select us

# By example from: https://wiki.debian.org/DebianInstaller/NetworkConsole
d-i anna/choose_modules string network-console
d-i preseed/early_command string anna-install network-console
d-i network-console/password-disabled boolean true
d-i network-console/authorized_keys_url string http://192.168.88.15:8000/id_rsa.pub

네트워크의 머신에서 제공됩니다.

$ hostname --all-ip-addresses
192.168.88.15
$ cp ~/.ssh/id_rsa.pub ~/www/
$ cd ~/www
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
192.168.88.17 - - [24/Jun/2023 01:21:19] "GET /preseed.cfg HTTP/1.1" 200 -
192.168.88.17 - - [24/Jun/2023 01:22:38] "GET /id_rsa.pub HTTP/1.1" 200 -

이는 ssh공개 키를 id_rsa.pubRSA의 기본값인 으로 저장했다고 가정합니다. 마지막 두 줄은 제공된 구성 파일 및 후속 구성에 대한 대상 컴퓨터 액세스를 위한 공개 키입니다 network-console. 설치 프로그램이 DHCP를 사용하여 자동으로 네트워크 연결을 구성하고 프로비저닝 프로필을 로드하도록 하려면 프로비저닝 프로필의 URL을 누르고 e이를 Linux 커널 매개변수에 추가하기만 하면 됩니다. auto=true priority=critical url=Debian Netinstall 설치 프로그램의 부팅 옵션은 다음과 같습니다:

setparams '... Automated install '

        set background_color=black                                
        linux    /install.amd/vmlinuz auto=true priority=critical url=192.1\
68.88.15:8000/preseed.cfg vga=788 --- quiet
        initrd   /install.amd/initrd.gz

Trisquel Netinstall 설치 프로그램의 또 다른 내용은 다음과 같습니다.

setparams '... Automated install'

        set background_color=black
        linux    /linux auto=true priority=critical url=192.168.88.15:8000/preseed.cfg vga=7\
88 --- quiet
        initrd   /initrd.gz

데비안에서는 firmware=never네트워크 구성을 위해 무료가 아닌 펌웨어를 설치해야 하는 단계를 건너뛰고 싶을 수도 있지만 이를 GRUB 메뉴 항목에 커널 부팅 매개변수로 추가해도 아무런 효과가 없었습니다. Trisquel은 무료가 아닌 펌웨어를 제공하지 않기 때문에 Trisquel에는 필요하지 않습니다. HelpGRUB2 메뉴 옵션이 있는 경우 boot프롬프트에서 이를 미리 설정할 수 있습니다.

boot: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz auto=true priority=critical url=192.168.77.15:8000/preseed.cfg ---

이 줄은 다음 예를 따릅니다.https://www.debian.org/releases/stable/amd64/apbs02.en.html#preseed-bootparms-examples

위의 내용은 컴퓨터에 선택할 수 있는 네트워크 장치가 있다고 가정합니다. 그렇지 않으면 설치 프로그램이 어느 것을 선택할지 묻는 메시지를 일시 중지할 수 있습니다.

ssh사용자로 시스템을 입력하십시오 installer. HTTP 서버 출력에서 ​​IP 주소를 얻을 수 있습니다.

$ ssh [email protected]

network-console터미널을 즉시 사용할 수 없습니다 . 대신 평소대로 설치 프로세스를 계속할지 아니면 터미널에 들어갈지 여부를 포함하여 세 가지 옵션 중 하나를 선택하라는 메시지가 표시됩니다. 이 설정에서는 작동하지 않습니다 scp.sftp

$ scp -i ~/.ssh/id_rsa.pub [email protected]:/var/log/syslog ~/
subsystem request failed on channel 0
scp: Connection closed
$ $ sftp -o IdentityFile=~/.ssh/id_rsa.pub [email protected]
subsystem request failed on channel 0
Connection closed
$ ssh [email protected] 'tar -C /var/log -cf - syslog' > ~/syslog.tar
$ cat ~/syslog.tar
Must be connected to a terminal.
$ mkdir ~/net
$ sshfs [email protected]:/ ~/net/ -v
subsystem request failed on channel 0
read: Connection reset by peer

nano /var/log/syslog로그화면을 화면별로 복사해서 사용했습니다 .

Ncat으로 복사하시면 됩니다 syslog! 이를 열어 컴퓨터의 포트에서 수신 대기하고 출력을 파일로 리디렉션합니다.

$ nc -l 6666 > syslog

열어두고 원격 컴퓨터에 연결하십시오.

$ ssh [email protected]

선택하다 Start shell. 원격 포트로 로그를 보냅니다.

~ # cat /var/log/syslog | nc 192.168.88.15 6666

관련 정보