우분투 배포판 업그레이드 도중 종료 복구


18

배포판 업그레이드 (Ubuntu 8.10-> 9.04) 중에 컴퓨터가 예기치 않게 종료되었습니다. 이제 부팅이 완료되지 않습니다-다양한 X 오류가 발생하면 로그인 화면으로 이동하지만 로그인은 허용되지 않습니다.

나는 그것의 백업을 가지고 / home 데이터는 드라이브에서 여전히 괜찮으므로 비상 사태는 아니지만 완전한 재구성은 여전히 ​​성 가시고 시간 소모적 인 프로세스입니다. 이것을 복구 할 수있는 방법이 있습니까? 나는 9.04 CD를 가지고 있는데, 맨 위에 설치하려고 시도하고 있었다-좋은 생각입니까?

실패하면, 드라이브를 검사하고 설치된 소프트웨어 목록을 생성하는 좋은 방법이 있습니까? 아니면 / home 외부에서 / etc와 같은 설정을 사용하는 것이 좋습니까?


처음부터 다시 시작해야하는 경우 예기치 않은 종료를 담당하는 사람을 처리하기위한 권장 사항은 무엇입니까? :)


편집 : 모든 답변에 대해 대단히 감사합니다. 각각의 비트를 사용하는 데 필요한 모든 답변을 수락해야합니다. 다음과 같은 방법으로 설치를 완전히 복구 할 수있었습니다.

sudo dpkg --configure -a
sudo apt-get update
sudo dpkg --configure -a
sudo dpkg --configure -a --abort-after=99999
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade

1
LART ( catb.org/jargon/html/L/LART.html )를 사용하십시오 . "LART classic은 2x4 또는 클럽 [...] 놉 커리, 자동 무기, 화염 방사기 및 전술로 사용할 수있는 다른 대형 나무 빌렛입니다. 핵무기는 모두 당파자가있다. "
David Schmitt

실제로 로그인 자격 증명을 입력 할 수 있습니까, 아니면 키보드 및 / 또는 마우스를 사용할 수 없습니까?
Oddmund

자격 증명을 입력 할 수는 있지만 더 이상 진행되지는 않습니다. CTRL + ALT + F1 그러나 나에게 터미널을 포기하고 내가 거기에 로그인 할 수 있었다
콜린 피카드

/ usr, / home 및 유사한 폴더가 별도의 디스크에서 마운트 될 때 문제가 발생할 수 있습니다.이 경우 바인드가 도움이됩니다. mount --bind / proc / chrooted / proc 마운트 사용 --bind / mnt / usr / chrooted / usr ...

답변:


11

dpkg를 루트로 사용할 수있는 곳으로 가면 dpkg --configure -a

그러나, 당신은 멍청한 dist-upgrade를 위해 폭발한다는 것을 알 수 있습니다.

dpkg --configure -a --abort-after=99999

7

CTRL-ALT-F1을 눌러 명령 프롬프트가 표시되는지 확인하십시오. 로그인 할 수 있는지 확인한 후 sudo apt-get dist-upgrade를 실행하십시오 . 업그레이드도 완료 할 수 있습니다. 오류가 발생하여 sudo dpkg --configure -a 를 사용해보십시오 .


설치된 소프트웨어 목록을 얻으려면 dpkg --get-selections 명령을 실행할 수 있습니다 . 해당 명령의 출력을 파일로 저장하면 cat selections | sudo dpkg --set-selections 다음 sudo apt-get dselect-upgrade 명령을 사용하여 실제로 모든 패키지를 설치하십시오.

이 경로를 사용하면 / etc 및 / home 폴더를 다른 장치에 백업해야합니다.


필자가 생각하는 백업 스크립트에 dpkg --get-selections를 추가하겠습니다. 매우 유용한.
콜린 피커드

5
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

첫 번째 줄은 다운로드중인 리포지토리의 현재 레벨을 새로 고칩니다.

두 번째 줄은 "나쁜"상태 인 패키지를 재구성합니다

두 번째 줄 프로세스 중에 저장소가 새 버전으로 "이동"하는 경우를 대비하여 세 번째 줄이 있습니다.

네 번째 줄은 작업을 완료해야합니다.


5

업그레이드 중에 전원이 꺼진 후 Xubuntu가 부팅되지 않는 치명적인 상황에서 복구 할 수있었습니다. POST 후 약 10 초 후에 Xubuntu는 많은 오류로 정지합니다 (grub에서 "복구"옵션을로드하려고 시도해도 작동하지 않습니다).

따라서 누군가 우연히 우연히 만난 경우 우분투 포럼에서 터미널 창에 도착하는 데 도움이되는 정보를 게시하여 위에 게시 된 Colin 및 Avery 명령을 사용할 수 있습니다.

---------- 싹둑 ---------- 싹둑 ---------- 싹둑 ---------- 싹둑 ------ ----

ubuntuforums.org/showthread.php?t=157250

업그레이드 후 시스템이 다운되거나 새 커널이 부팅되지 않는다고 가정 해 봅시다. 명령 행에 도달 할 수 없으므로 apt-get의 문제점을 해결할 수 없습니다. 커널은 오류를 내고 부팅 할 때 멈 춥니 다. 고맙게도 라이브 CD를 사용하면 시스템을 복구하고 실행할 수 있습니다. 라이브 CD에는 Knoppix 또는 Ubuntu 라이브 CD의 두 가지 옵션이 있습니다. Knoppix는 일반적으로 더 나은 하드웨어 감지 기능을 제공하므로이를 예로 사용합니다.

  1. 먼저 http://www.knoppix.org/ 에서 iso를 다운로드하여 디스크에 굽습니다.
  2. CD에서 부팅하고 Knoppix 디스크에서 팝업하여 부팅하도록 BIOS를 설정하십시오.
  3. 하드 드라이브는 시스템에 따라 KDE 데스크탑에 hda1 또는 sdb2 등으로 표시되어야합니다.
  4. 그것을 클릭하여 마운트 한 다음 마우스 오른쪽 버튼을 클릭하고 동작-> 읽기 쓰기 모드로 변경하십시오. 대화 상자가 열립니다. 예를 클릭하십시오.
  5. 이제 Knoppix 메뉴 (패널의 K 옆에있는)에있는 루트 터미널을여십시오. chroot / mnt / hda1 또는 데스크탑에서 하드 드라이브의 아이콘이 무엇이든 입력하십시오.

이제 apt-get을 포함하여 하드 드라이브의 모든 명령을 사용할 수 있습니다. "/ dev / null : Permission denied"오류가 발생하면 "sudo rm / dev / null"오류가 발생하고 사라집니다. 이제 apt-get을 사용하여 커널, udev 또는 시스템을 망가 뜨리는 다른 것을 업그레이드하십시오.

---------- 싹둑 ---------- 싹둑 ---------- 싹둑 ---------- 싹둑 ------ ----

너무 완벽하게 작동했습니다! 지시 사항에 따라 하드 드라이브를 마운트하고 터미널 창을 열고 "sudo chroot / media / hda1"을 입력 한 후 마침내 하드 드라이브에 액세스했습니다. 그런 다음이 스레드의 이전에 게시 된 명령을 사용하여 업그레이드 프로세스를 다시 시작할 수있었습니다. :)

Ubuntu Live / Installation CD에이 전체 복구 프로세스를 용이하게하기 위해 "복구 콘솔"이 내장되어 있지 않은 이유는 놀라운 일입니다.


이것은 비슷한 상황에서 저에게 효과적이었습니다. 이 답변 SU에 제대로 라이브 CD에서 파티션을 마운트하는 방법에 대한 좋은 지침을 제공합니다.
zelanix

1

나에게 또 다른 명령이 chroot 환경에서 모든 패키지가 올바르게 구성되도록 도와줍니다 (이전에 실행하십시오 dpkg ,dist).

upstart는 서비스 감독자로 작동하고 chroot 내의 프로세스가 chroot 외부에서 실행되는 upstart와 통신 할 수 없으므로 chroot에서 시작 작업을 시작할 수 없습니다 (버그 : 430224). 이로 인해 init 스크립트 대신 upstart 작업을 사용하도록 변환 된 일부 패키지가 chroot 내에서 업그레이드되지 않습니다. chroot 내에서 다음 명령을 실행하여 / bin / true를 가리키는 / sbin / initctl을 사용하여 chroot를 구성하는 것이 좋습니다.

암호:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.