부팅 시 커널 패닉

부팅 시 커널 패닉

Ubuntu 위에 Windows를 설치한 후 GRUB를 복구하려고 했습니다. 하지만 난 그걸 고칠 수가 없었고,이런 질문을 했어요.Psusi와 논의하는 동안, 우리는 뭔가를 발견했습니다. 내가 설치한 시스템은 64비트이지만 일부 라이브러리 파일은 32비트입니다(예: libdevmapper.so.1.02.1).

(내 질문에 대한 13단계를 확인할 수 있습니다. 그리고 내가 어떤 단계를 따랐는지 보려면 다른 단계를 확인하세요.)

  1. 내 이전 Ubuntu가 에 설치되었습니다 /dev/sda3. 나는 그것을 장착했다./mnt/ubusda3
  2. root@ubuntu:/home/ubuntu# file /mnt/ubusda3/sbin/init /mnt/ubusda3/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
  3. root@ubuntu:/home/ubuntu# file /mnt/ubusda3/lib/libdevmapper.so.1.02.1 /mnt/ubusda3/lib/libdevmapper.so.1.02.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
  4. sudo dpkg --root=/mnt/ubusda3 -i /mnt/ubusda3/var/cache/apt/archives/libbz2-1.0_1.0.5-6ubuntu1.11.10.1_amd64.deb
  5. chroot /mnt/ubusda3
  6. apt-get install --reinstall libdevmapper1.02.1
  7. 그리고 다시 시도했는데 오류가 update-grub발생했습니다 mapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory.
  8. 시스템을 다시 시작했지만 아무것도 변경되지 않았습니다.
  9. /bin/mapdevfs명령 으로 mapdevfs를 찾았습니다 which mapdevfs.
  10. sudo rm /bin/mapdevfs
  11. for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
  12. grub-install /dev/sda
  13. 마지막으로 GRUB 문제를 해결했습니다. 이제 부팅하는 동안 GRUB 메뉴가 나타납니다. 여기에 이미지 설명을 입력하세요 이전 Linux 버전 화면(및 먼지) 여기에 이미지 설명을 입력하세요

하지만 을 선택하면 Ubuntu 3.0.0.17-generic로딩 화면이 멈추고 다음 오류가 발생합니다.스크롤 잠금그리고Num 잠금섬광.) 여기에 이미지 설명을 입력하세요

다른 커널 버전을 선택할 때이전 우분투 버전screen- 두 가지 모두에 대해 이 오류가 발생합니다.

여기에 이미지 설명을 입력하세요

참고 1(비합리적인 John의 경우)

ubuntu@ubuntu:~$ sudo su
root@ubuntu:/home/ubuntu# mkdir /mnt/ubusda3
root@ubuntu:/home/ubuntu# mount /dev/sda3 /mnt/ubusda3
root@ubuntu:/home/ubuntu# for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
root@ubuntu:/home/ubuntu# chroot /mnt/ubusda3/
root@ubuntu:/# apt-get -V --reinstall install libnih
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libnih

그러다가 그게 libnih1아니라는 걸 알아차렸어요 linbih(http://packages.ubuntu.com/search?keywords=libnih&searchon=names&suite=oneiric§ion=all)

root@ubuntu:/# apt-get -V --reinstall install libnih1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
   winbind (3.5.11~dfsg-1ubuntu2.2)
The following packages will be upgraded:
   winbind (3.5.11~dfsg-1ubuntu2.1 => 3.5.11~dfsg-1ubuntu2.2)
1 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
6 not fully installed or removed.
Need to get 54.7 kB/5,693 kB of archives.
After this operation, 32.8 kB disk space will be freed.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
  libnih1
Install these packages without verification [y/N]? y
Get:1 http://tr.archive.ubuntu.com/ubuntu/ oneiric/main libnih1 amd64 1.0.3-4ubuntu2 [54.7 kB]
Fetched 54.7 kB in 0s (57.1 kB/s)  
Can not write log, openpty() failed (/dev/pts not mounted?)
(Reading database ... 196784 files and directories currently installed.)
Preparing to replace winbind 2:3.5.11~dfsg-1ubuntu2.1 (using .../winbind_2%3a3.5.11~dfsg-1ubuntu2.2_amd64.deb) ...
/sbin/runlevel: error while loading shared libraries: libnih.so.1: wrong ELF class: ELFCLASS32
 * Stopping the Winbind daemon winbind
   ...done.
Unpacking replacement winbind ...
Preparing to replace libnih1 1.0.3-4ubuntu2 (using .../libnih1_1.0.3-4ubuntu2_amd64.deb) ...
Unpacking replacement libnih1 ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Can not write log, openpty() failed (/dev/pts not mounted?)
Setting up libwbclient0 (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up samba-common (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up winbind (2:3.5.11~dfsg-1ubuntu2.2) ...
 * Starting the Winbind daemon winbind
/usr/sbin/winbindd: error while loading shared libraries: libcap.so.2: wrong ELF class: ELFCLASS32
   ...fail!
invoke-rc.d: initscript winbind, action "start" failed.
dpkg: error processing winbind (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up libsmbclient (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up samba-common-bin (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up smbclient (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up libnih1 (1.0.3-4ubuntu2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)

이번에는 libnih-dbus.so....파일에 대해 동일한 부팅 오류가 발생합니다.

또한 다른 32비트 파일을 찾기 위해 귀하의 명령을 실행했는데 그 안에 있는 모든 파일을 볼 수 /mnt/ubusda3/lib/modules/3.0.0-12-generic/있었습니다 /mnt/ubusda3/bin.32비트.

전체 커널 파일을 다시 설치할 수 있습니까?

답변1

좋아, 모든 답을 다 시도해 봤어요. 하지만 나는 내 문제를 해결할 수 없었습니다. 마지막으로 Ubuntu를 다시 설치했습니다.

답변2

다음을 사용하여 현재 설치로 부팅할 수 있습니까?어느시스템에 설치된 커널 수는 무엇입니까?

당신의Psusi와 채팅~이있다링크가 포함된 메시지에게부팅 수리 페이스트 938724. 다음에 대한 항목이 포함된 GRUB 메뉴가 생성되었음을 보여줍니다.

'Ubuntu, with Linux 3.0.0-17-generic'
'Ubuntu, with Linux 3.0.0-17-generic (recovery mode)' 
'Ubuntu, with Linux 3.0.0-16-generic'
'Ubuntu, with Linux 3.0.0-16-generic (recovery mode)' 
'Ubuntu, with Linux 3.0.0-12-generic' 
'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)' 

모두 시도해 보았으나 모두 같은 방식으로 실패합니까? 그 중 하나가 성공적으로 부팅할 수 있는지 궁금합니다. 그런 다음 실패한 커널을 제거/제거한 다음 다시 설치하여 복구할 수 있습니다.


4월 24일

에 따르면부팅 수리 페이스트 938724, 프로브할 때 폴더 update-grub에서 해당 항목을 찾았습니다 . /boot적어도 그것이 .NET에서 부팅 복구가 발견된 것입니다 sda3/boot/grub/grub.cfg.

부팅할 때 GRUB 메뉴에 무엇이 표시됩니까? 다음과 비슷합니까?

Ubuntu, with Linux 3.0.0-17-generic
Ubuntu, with Linux 3.0.0-17-generic (recovery mode)
Previous Linux versions
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 7 (loader) (on /dev/sda4)

(부팅할 때 GRUB 메뉴가 표시되지 않으면 shift부팅 프로세스가 시작될 때 키를 길게 눌러 메뉴 숨기기를 해제해 보세요.)

항목이 포함된 GRUB 메뉴가 나타나면 Previous Linux versions해당 항목을 선택하고 키를 눌러 보십시오 enter. 3.0.0-16및 커널 항목이 포함된 다른 메뉴가 표시됩니다 3.0.0-12. 부팅하면 어떤 일이 일어나는지 확인하세요.


4월 26일

더 궁금하고 더 궁금하다. 좋아요, 그럼 ELFCLASS3264 대신에 다시 한번 말씀드리겠습니다. 그 밖에 무엇을 해야 할지 모르신다면, 귀하께서 귀하가 진행한 절차를 따르시기 바랍니다.Psusi와 채팅.

  1. 64비트(AMD64) Ubuntu 11.10용 Live CD/USB를 부팅합니다.
  2. .chroot/dev/sda3​그런 다음 실행 apt-get하여 올바른 64비트 버전의 libnih.so.1.
    # /dev/sda3을 /mnt/ubu2fix로 마운트
    mkdir /mnt/ubu2fix
    sudo 마운트 /dev/sda3 /mnt/ubu2fix

    # 명령 처리를 위해 '/mnt/ubu2fix'가 '/'가 되도록 chroot
    나는 /sys /proc /run /dev에 있습니다. sudo mount --bind "$i" "/mnt/ubu2fix/$i"; 완료
    sudo chroot /mnt/ubu2fix

    # libnih1.so.1.0.0(libnih1.so.1이라고도 함)이 포함된 패키지를 다시 설치합니다.
    apt-get -V --reinstall libnih1 설치

하지만,~ 전에을 수행하면 chroot먼저 얼마나 많은지 알아보고 싶을 수도 있습니다.다른 ELFCLASS32파일이 있을 수 있으며 (잠재적으로) 수정이 필요할 수 있습니다. 아래 명령이 이 작업을 수행할 것이라고 생각합니다.

아래 명령은 , , 및 Ubuntu 설치 file디렉터리의 모든 파일에 대해 명령을 실행합니다 . 출력을 32비트 실행 파일로 제한합니다 ./bin/sbin/lib/lib64/dev/sda3grep

모든 것이 정확하다면 이 명령은 **NO를 생성해야 합니다.출력.** 이 명령을 실행할 때 나열된 모든 파일은 64비트여야 하는데 32비트입니다. 시스템이 올바르게 작동하려면 (아마도) 다시 설치해야 할 것입니다.

sudo find /mnt/ubu2fix/bin  -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/sbin  -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/lib  -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/lib64  -type f -exec file '{}' \; | grep 32-bit

위의 명령을 실행하세요.~ 후에/dev/sda3으로 마운트 /mnt/ubu2fix하지만~ 전에당신은 chroot. (또는 외부에 있는 다른 터미널에서 실행하십시오 chroot.)


4월 29일

나는 당신을 보았다참고 1.


" 라는 귀하의 의견을 이전에 알아채지 못해 죄송합니다 .모든 파일은 /mnt/ubusda3/lib/modules/3.0.0-12-generic/32 /mnt/ubusda3/bin비트입니다."
나는 이것이 사실이 될 것이라고는 전혀 예상하지 못했습니다.

"전체 커널 파일을 다시 설치할 수 있습니까?"

당신이 무엇을 요구하는지 잘 모르겠습니다. (하지만 그렇게 한다고 해도 어떻게 해야 할지 모르겠습니다. 죄송합니다.)


5월 1일 - 11.10에서 11.10으로 업그레이드 설치 고려


이전에는 시스템 복구를 위한 설치를 제안한 @Alvar의 의견을 읽었을 때 이것이 현재 설정이 파괴된다는 의미라고 가정하여 이를 무시했습니다. 이제는 잘 모르겠습니다.

Ubuntu와 Windows가 동일한 하드 드라이브의 서로 다른 파티션에 설치되어 있는 상황에서 Ubuntu 설치 프로그램은 아래 이미지에 표시된 것처럼 어떤 유형의 설치를 원하는지 묻습니다.

Ubuntu 11.10 및 Windows 7 듀얼 부팅에 대한 설치 선택 사항

나는업그레이드 설치VirtualBox VM에서 11.10부터 11.10까지의 버전을 통해 해당 기능에 대한 더 나은 아이디어를 얻을 수 있습니다. 주장대로 작동하는 것 같습니다.아래에 나열된 몇 가지 경고가 있습니다.

재설치를 수행해야 하는지 여부에 대해서는 조언을 드릴 수 없습니다. 나는 당신의 상황이나 당신이 가지고 있거나 가지고 있지 않은 자원이 무엇인지 모릅니다.

몇 가지 주의사항:

  1. 현재 입력할 때 주의해야 합니다.사용자 ID설치하라는 메시지가 표시되면. 다른 아이디를 입력하시면 이전 아이디는 삭제됩니다. 이 계정으로는 로그인할 수 없습니다. 이에 대한 자세한 내용은 이 질문에 설명되어 있습니다.이전 홈 폴더를 사용하여 삭제된 사용자 이름을 복원하려면 어떻게 해야 합니까?
  2. 을 선택하면 Download updates while installing설치가 apt-get dist-upgrade. 업그레이드를 설치하기 전에 보류 중인 업그레이드가 8개 있었습니다. 완료 후 대기 중인 업데이트가 0개 있었고 새 커널 3.0.0-19-generic이 설치되었습니다.
  3. Firefox는 괜찮은 것 같았습니다. 내 비밀번호, 기록, 북마크가 보존된 것 같습니다. 내 Google Chrome 브라우저의 애플리케이션 부분이 삭제되었지만 사용자 데이터는 삭제되지 않았습니다. 따라서 Chrome을 다시 설치한 후 설정, 북마크 등도 Chrome에서 올바르게 작동했습니다.
  4. 모든 것이 잘 작동하는 것처럼 보였지만 가장 안전한 방법은 언제나 그렇듯이 설치를 시작하기 전에 Ubuntu 파티션에 데이터를 백업하는 것입니다.귀하의 데이터가 귀하에게 얼마나 가치 있는지, 그렇지 않은지 아는 유일한 사람입니다. 그러므로 당신은 어떤 위험을 기꺼이 감수할 것인지, 감수하지 않을 것인지를 아는 유일한 사람입니다.

답변3

배포판을 사용해 보세요"우분투 구조 리믹스"CD/USB에서 라이브로 부팅하면 Grub 복구를 위한 애플리케이션을 사용하거나 다른 OS를 감지할 수 있습니다.

It is very easy to use, I working great for me.

여기에서 Rescue iso를 얻을 수 있습니다:

답변4

설정 을 변경했을 때 이 문제에 직면했습니다 BIOS. BIOS 설정을 변경했거나 BIOS기본값으로 재설정하고 결과를 되돌리지 않은 경우에도 마찬가지입니다.

관련 정보