적절한 Qemu 디버그 커널 로딩을 위한 가장 좋은 방법

적절한 Qemu 디버그 커널 로딩을 위한 가장 좋은 방법

다음은 qemu 디버그 커널 문제를 해결하는 데 도움이 되는 간단한 방법입니다.

PC 문제 해결을 위한 최고의 도구에 한 번의 클릭으로 액세스할 수 있습니다. 다시는 모든 성가신 문제를 해결하기 위해 헛되이 노력하는 데 1분도 소비하지 마십시오.

언제

우리는 일반적으로 프로그램을 교체합니다. 예를 들어 대부분의 수정 사항을 테스트하기 위해 프로그램을 실행하는 것을 선호합니다.물론 실제 컴퓨터 하드웨어에서 컴파일된 Linux 커널 모양을 다운로드하지 않고도 비용을 절감할 수 있습니다.대규모 가상 머신으로 빠르게 부팅해야 하는 시간과 잠재적 골칫거리QEMU주요 건강 검사로. 커널을 QEMU에 업로드한다고 해서 개념이 작동한다는 보장은 없습니다.금속에 로드되어 있지만 의심할 여지 없이 제품은 커널 이미지와 같이 대부분이 말 그대로완전히 깨졌습니다. 나는 마침내 그것을 작동하는 것을 경험했기 때문에 이것을 게시하기 위해 결정했습니다.미래를 위한 문자열 인수 실수(및 관찰 가능한 경고)를 위해 구축됨여행자. 또한 QEMU에는 내가 언제든지 가지고 있는 추가 바이너리를 사용할 수 있는 더 많은 표시기가 포함되어 있습니다.(모든 google3 바이너리와 달리, 유인된 프레임과 달리) 보고 방금 인쇄했습니다.이 포트에는 ¾ 공격이 있습니다. 내가 쓴다면 쓰지 마세요. 그렇지 않으면 당신이 내 것을 잃을 것입니다.쉘의 역사, 나는 그것을 할 수 있는 방법을 거의 잊을 것입니다.

qemu 디버그 커널 부팅
<사전>12삼456세븐8일9십열하나12열셋14열 다섯열여섯17십팔십구이십21222324
# 이 세트 중 하나는 일반적으로 시간$ mkinitramfs 램디스크 -o.img$ 자부심 "추가 자동 부팅 안전 경로/to/linux/scripts/gdb/vmlinux-gdb.py" >> ~/.gdbinit# 각 커널 시간만 조정$리눅스 CD$ ./scripts/config -ok DEBUG_INFO -전기 GDB_SCRIPTS$ <커널 이미지 빌드># 함께 디버그세션 $qemu-system-x86_64n  -kernel/x86_64/boot/bzImagen  -노그래픽 n  - "console=ttyS0 nokaslr" 추가n  -initrd ramdisk.imgn  512번째  --enable-kvmn  -호스트 CPUn  -봄 여름 시즌&$gdbvmlinux(gdb) 원격 틈새: 1234(gdb) hbreak 시작 커널(가) 와(gdb) lx-dmesg

QEMU 시작하기

우리는 멍청한 플레이를 하고 우리가 실행하는 문제와 해결 방법을 볼 것입니다. 주로,새 커널을 사용해 보겠습니다.

<사전>1

PC 문제? 몇 분 안에 해결하세요.

컴퓨터가 느리게 실행되고 있습니까? 성가신 오류 메시지가 계속 표시됩니까? 글쎄, Reimage이 하루를 구하기 위해 여기 있기 때문에 더 이상 보지 마십시오! 이 멋진 작은 소프트웨어는 모든 Windows 관련 문제를 복구하고 컴퓨터를 다시 새 것처럼 만들 것입니다. 빠르고 쉽게 작동할 뿐만 아니라 완전히 안전하므로 중요한 파일이나 데이터가 손실될까 걱정할 필요가 없습니다. 컴퓨터 문제와 작별할 준비가 되었다면 지금 Reimage을 다운로드하세요!

  • 1단계: Reimage 다운로드 및 설치
  • 2단계: 프로그램을 열고 "스캔"을 클릭합니다.
  • 3단계: "복구"를 클릭하여 복원 프로세스 시작

  • $ qemu-system-x86_64 -커널 아치/x86_64/boot/bzImage

    새 앞유리가 확실히 열리고 dmesg 출력을 엿볼 수 있어야 합니다.당신의 팬은 그것을 잘 탈 수 있습니다. 나는 이 기간을 비교적 보기 어렵다고 생각합니다.터미널의 기능(및 입력) 가져오기:

    <표 <사전>1
    $ qemu-system-x86_64 -커널 아치/x86_64/boot/bzImage -nographic

    여기에는 유익한 지표가 없지만 애플리케이션은 언제 무슨 일이 일어날지 이해하는 데 도움이 될 것입니다.우리는 그것에 대해 무시하는 경향이 있습니다. 그 시점에서 탈출구가없고 QEMU가 응답하지 않는 것 같습니다.Ctrl+c로. 그리고 내 팬이 다시 회전할 수 있습니다. ctrl+a를 시도한 다음 c를 시도하여(qemu) 힌트. 단순 엔딩 q.

    다음으로 모든 커널 부트 문자열 인수를 전달합니다. 수락사용자 공간 바이너리와 마찬가지로 많은 경우 부트로더에서도 인수를 제시하는 명령 커널모든 것을 사용자 정의하십시오.

    <사전>12삼456세븐8일9십열하나12열셋14열 다섯열여섯17
    $ qemu-system-x86_64 -kernel arch/x86_64/boot/bzImage -nographic "console=ttyS0" - 붙이다...[1.144348] 커널 패닉 공격 - out of connect: VFS: unknown-block(0,0) fs가 되도록 루트를 연결할 수 없습니다.[1.144759] CPU: 0 PID: 1 Swapper/0 comm: 4.18.0-rc6 #10 때문에 손상되지 않았습니다.[1.144949] 하드웨어 이름: QEMU 표준 PC+(i440fx PIIX, 1996), BIOS 1.10.2-1ubuntu 1.04/01/2014[1.145269] 추적:[전화 1.146027] dump_stack+0x5c/0x7b[ 1.146162] 패닉+0xe4/0x252[1.146286] Mount_block_root+0x1f1/0x2d6[ 1.146445] 준비_네임스페이스+0x13b/0x171[1.146579] kernel_init_freeable+0x227/0x254[1.146721] Rest_init+0xb0/0xb0[? 1.146826] Kernel_init+0xa/0x110[1.146931] ret_from_fork+0x35/0x40[1.147412] 코어 시프트: 0xffffffff81000000에 관한 0x1c200000(시프트 범위: 0xffffffff80000000-0xffffffffbffffff)[ 1.147901] --- [ 커널 패닉 수정 - 연결 없음: VFS: 알 수 없는 블록(0,0)에서 기본 파일 시스템을 마운트할 수 없습니다. ] ---(누구에게) q

    글쎄, 우리가 시작하는 바로 그 순간에는 우리가 있지 않습니다(실제로 ctrl+a, c, q에 대한로그 오프하다). 이제 우리는 루트 파일 전체가 없다는 점을 감안할 때 미쳐 가고 있습니다.시작하는 데 도움이 되는 바이너리 파일 init. 이제 남편과 나는 다음과 같은 파일 시스템 사진을 가질 수 있습니다.베어 본 (확실히 다른 날을 생성하는 메시지)하지만 필수 디스크 생성그들 대부분은 정말 정말 쉬운 방법입니다, IMO. 좋습니다. 멋진 가상 디스크를 만들어 보겠습니다.그런 다음 실제 설정에 추가합니다.

    <사전>12 <사전><코드>$ qemus mkinitramfs -o ramdisk.img$ qemu-system-x86_64 -kernel arch/x86_64/boot/bzImage -nographic -append "console=ttyS0" Ramdisk -initrd.img

    불행하게도 우리는 (아마도) 겁먹을 수 없는 바로 그 공포에 사로잡힐 것입니다.정보는 충분하지만 일반적으로 QEMU에서 사용할 수 있는 최대 메모리도 기한이 지난 것입니다.한계. 512 -m은 재설정 및 복구와 관련하여 개별 VM에 충분한 메모리를 제공합니다.busybox에 의한 지불 요청:

    <사전>12삼4
    $ qemu-system-x86_64 -kernel arch/x86_64/boot/bzImage -nographic -add "console=ttyS0" -initrd ramdisk.img -m 512...(initramfs) 정렬 /proc/versionLinux 버전 4.19.0-rc7+ ([email protected]) (Clang 적응 8.0.0 (https://git.llvm.org/git/clang.git/60c8c0cc0786c7f6b8dc5c1e3acd7ec98f0a7b6d) (.https://git. org/git/llvm.64c3a57bec9dbe3762fa1d80055ba850d6658f5b)) git/ #18 SMP 수 10월 24일 19:29:53 PDT 2018
    <사전>1
    $ qemu-system-x86_64 -kernel arch/x86_64/boot/bzImage -nographic -add "console=ttyS0" -initrd ramdisk.img -m 512 --enable-kvm

    qemu debug kernel boot

    마지막으로, 우리와 관련된 대부분은 QEMU를 실행할 때 실제로 경고를 볼 수 있습니다.

    1
    qemu-system-x86_64: 경고: 요청된 지원 축하가 게시되지 않음: CPUID.80000001H:ECX.svm [비트 2]

    QEMU가 가능한 호출을 성공적으로 호스팅하기 위해 -cpu를 결합하고 싶습니다. 이것은 현실적일 수 있습니다.디버깅 및 종료CASL커널의 애드온 x 매개변수에서 nokaslr을 통해 제어를 온라인 상태로 유지합니다.CONFIG_RANDOMIZE_BASE는 의심할 여지 없이 커널 구성에서 수정되었습니다.

    또한 -s를 추가하여 포트 1234에서 올바른 gdbserver를 실행하고 결과적으로 커널을 깨뜨리기 위해 -S를 추가할 것입니다.우리가 gdb.GDB를 통해 계속할 때까지

    QEMU에 추가

    이제 우리 조직이 QEMU에서 이 커널 이미지를 얻을 수 있으므로 여기에 gdb를 추가해야 합니다.

    <사전>1
    $ gdb vmlinux
    <사전>12삼4
    경고: 자동 로드 파일 "/home/nick/linux/scripts/gdb/vmlinux-gdb.py"가 "auto-load safe-path" 패키지에 의해 변경되었습니다. " $debug 디렉토리: 제출 사이트 $data/autoload"가 필요합니다.이 파일을 실행하려면 다음을 추가하십시오.  /path/to/linux/scripts/gdb/vmlinux-gdb add-auto-load-safe-path.py각 구성 파일 "/home//.gdbinit"을 입력합니다.

    사용자는 이 작업을 한 번 수행하여 실행할 때마다 일반 gdb 스크립트를 로드할 수 있습니다.

    PC에 문제가 있는 경우 이 사용하기 쉬운 복구 도구를 사용하면 모든 문제를 즉시 해결할 수 있습니다!

    Hugo Gaffney

    Related Posts

    수정됨: 바이러스 백신 2009 무료 다운로드를 올바르게 Escan하는 방법

    수정됨: 바이러스 백신 2009 무료 다운로드를 올바르게 Escan하는 방법

    Taylor의 오류 구문 분석 문제 해결 및 첨부

    Taylor의 오류 구문 분석 문제 해결 및 첨부

    유형 3 BIOS 평면 패널 문제 해결

    유형 3 BIOS 평면 패널 문제 해결

    해체 오류 제거

    해체 오류 제거