이 기사에서는 Linux Ubuntu/Mint/Kali를 실행하는 컴퓨터가 부팅되지 않거나 busybox로 떨어질 때 발생하는 문제를 해결하는 방법을 보여줍니다. initramfs 동안 프롬프트 초기화. 사용자는 initramfs 명령 프롬프트에만 액세스하여 사용할 수 있습니다.
Initramfs 초기 tmpfs입니다. - 별도의 블록 장치를 사용하지 않는 RAM의 파일 시스템. initrd처럼 , 루트 파일 시스템에 있는 init를 호출하기 전에 파일 시스템을 마운트하는 도구와 스크립트가 포함되어 있습니다.
LINUX에서 깨진 Ext4 Superblock 복구하기
initramfs 초기화 중에 Ubuntu가 busybox에 충돌하면 디스크에 손상된 슈퍼블록이 있을 수 있습니다.
모든 슈퍼블록 복사본은 Linux에 보관됩니다. 이 문제가 발생한 경우 시스템을 복구하려면 복구 이미지/디스크/라이브 CD에서 부팅하고 터미널 프롬프트를 실행해야 합니다. 부팅 후 터미널에 다음 명령어를 입력합니다.
# sudo fdisk -l|grep Linux|grep -Ev 'swap'
이 명령은 볼륨에 대한 정보를 반환합니다.
/dev/vda2 4096 83884031 83879936 40G Linux filesystem
볼륨 이름을 기억하고 다음 명령에서 지정하십시오.
# sudo dumpe2fs /dev/vda2 | grep superblock
이 명령은 백업 슈퍼블록 목록을 표시합니다.
두 번째 백업 수퍼 블록을 사용하여 손상된 수퍼 블록을 교체합니다(기본 수퍼 블록을 제외한 모든 수퍼 블록을 사용할 수 있음). 백업 슈퍼블록을 사용하여 디스크 확인:
# sudo fsck -b 98304 /dev/vda2 -y
fsck from util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) /dev/vda2 is mounted. e2fsck: Cannot continue, aborting
볼륨 마운트 해제:
# umount /dev/vda2
수퍼 블록을 성공적으로 교체하면 다음과 같은 메시지가 표시됩니다.
fsck from util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) /dev/vda2 was not cleanly unmounted, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #231 (32254, counted=32253). Fix? yes Free blocks count wrong for group #352 (32254, counted=32248). Fix? yes Free blocks count wrong for group #358 (32254, counted=27774). Fix? yes .......... /dev/vda2: ***** FILE SYSTEM WAS MODIFIED ***** /dev/vda2: 85986/905464576 files (0.2% non-contiguous), 3904682/905464576 blocks
그런 다음 부팅 미디어를 마운트 해제하고 컴퓨터를 다시 시작합니다. 모든 것이 제대로 작동해야 합니다.
Fsck 부팅 오류:예기치 않은 불일치
initramfs(BusyBox) 문제의 두 번째 변형은 터미널 창에 다음 메시지를 포함합니다.
/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY The root filesystem on /dev/sda1 requires a manual fsck.
안보이면
(initramfs) exit
를 입력해 보세요. 터미널 창에서 당신이 그것을 한 후에 오류가 나타날 수 있습니다 ...
메시지에는 수동 디스크 검사를 실행해야 하는 볼륨이 표시됩니다. initramfs 프롬프트에서 다음 명령을 실행합니다.# fsck /dev/sda1 -y
디스크 검사가 끝나면 컴퓨터를 다시 시작하고 Linux가 올바르게 부팅되는지 확인합니다.
경고! /dev/volume이 존재하지 않습니다
Fstab 문제
Linux 호스트를 부팅할 때 다음 오류가 표시될 수 있습니다.
ALERT! /dev/sda1 does not exist. Dropping to a shell.
방금 Linux를 설치했거나 호스트에 fstab이(가) 있습니다. 문제. USB에서 시스템을 설치할 때 가장 자주 문제가 발생합니다. 운전하다. 시스템은 모든 볼륨의 오류를 표시할 수 있습니다. 첫 번째 경우와 마찬가지로, 구조/부정 Linux 미디어에서 부팅하고 몇 가지 작업을 수행해야 합니다. 다음 명령을 사용하여 디스크 UUID를 확인하십시오.# sudo blkid
시스템은 다음과 같이 반환합니다:
/dev/sda2: UUID="36cce3d5-cbdb-46f4-adbf-3f9aaa01d729" TYPE="ext4" PARTUUID="fea4dab1-4e12-4327-85c6-76ade18f64e1"
여기서 우리는 시스템이 sda2에서 부팅해야 하지만 실제로는 sda1에서 부팅을 시도한다는 것을 알 수 있습니다.
볼륨을 임의의 디렉토리에 마운트합니다. 예:
# sudo mount /dev/sda2 /mnt
/mnt 디렉토리에 /dev/sda2가 보이면 /etc/fstab 파일을 찾아 /dev/sda1이 포함된 라인을 다음과 같이 수정합니다.
UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 errors=remount-rw 0 1
파일을 저장합니다. /mnt에서 볼륨을 마운트 해제하고 재부팅합니다. 문제가 잘못된 볼륨 이름과 관련된 경우 서버가 부팅됩니다.
또한 비상 모드로 부팅하여 이 문제를 해결할 수 있습니다. 루트 디렉토리를 읽기/쓰기로 다시 마운트:# sudo mount -o remount,rw /
그런 다음 fstab을 변경하고 서버를 다시 시작합니다.
하드웨어 문제
일부 마더보드의 경우 SATA 포트는 난수를 얻을 수 있습니다. 이전 섹션에서 설명한 오류가 발생할 수도 있습니다. 이를 수정하려면 grub 부트로더를 수정해야 합니다.
비상 모드 또는 라이브 CD에서 부팅하고 /boot/grub/grub.cfg 편집 파일.
부팅 볼륨을 결정하는 줄에서, 예를 들면:
Linux /boot/vmlinuz-4.15.0-70-generic root=/dev/sda1 rw quiet elevator=noop fsck.repair=yes
디스크 경로를 UUID로 바꿉니다. :
Linux /boot/vmlinuz-4.15.0-70-generic root=UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro quiet elevator=noop fsck.repair=yes