GRUB 구조-오류 : 알 수없는 파일 시스템 (hd0,msdos6)/디렉토리를 나열하기 때문에 (hd0, msdos6)에 Linux가

멀티 부트 시스템을 설정했습니다. 시스템에는 3 개의 드라이브가 있습니다. 멀티 부트는 첫 번째 드라이브에 Windows XP, Windows 7 및 Ubuntu로 구성됩니다. 나는 드라이브에 많은 파티션되지 않은 공간을 남겨두고 다른 OS를 추가하고 나중에 파일을 저장하기 위해 예약했습니다.

어느 날 나는 Partition Wizard를 다운로드하여 Windows 7에서 논리 NTFS 파티션을 만들었지 만 여전히 파티션되지 않은 공간이 남아 있습니다. 며칠 후에 컴퓨터를 재부팅 할 때까지 모든 것이 제대로 작동했습니다.

지금 나는 얻는다 :

error: unknown filesystem.
grub rescue>

우선 다음과 같이 시도하여 어떤 종류의 도움 명령도 찾지 않는 것에 놀랐습니다.

help, ?, man, --help, -h, bash, cmd, 등

이제 부팅 할 수없는 시스템이 붙어 있습니다. 문제를 조사하고 사람들이 일반적으로 Live CD로 부팅하여 문제를 해결하는 것이 좋습니다. Live CD가 없어도 grub 복구 내에서이 문제를 해결할 수있는 방법이 있습니까?

최신 정보

Persist 명령에서 GRUB rescue로 입력 한 단계를 수행 하여 initramfs 프롬프트로 부팅 할 수있었습니다. 그러나 그 이상은 아닙니다.

지금까지 grub rescue 에 대한 설명서를 읽지 않고 ls명령을 사용하여 드라이브와 파티션을 볼 수있었습니다 . 첫 번째 하드 드라이브의 경우 다음을 참조하십시오 :
(hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

ls (hd0,msdos6)/디렉토리를 나열하기 때문에 (hd0, msdos6)에 Linux가 포함되어 있음을 알고 있습니다 . 다른 사람들은 “오류 : 알 수없는 파일 시스템”을 줄 것입니다.

업데이트 2

다음 명령을 수행 한 후 이제 부팅 메뉴로 이동하여 Windows 7 및 Ubuntu로 부팅 할 수 있지만 재부팅시이 단계를 반복해야합니다.

ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal

업데이트 3

감사합니다 Shashank Singh, 귀하의 지시에 따라 다음 단계를 단순화했습니다. 난 그냥 6으로 난 그냥 할 수있는 msdos6 대체 할 수 있다고에서 배운 insmod normal대신 insmod /boot/grub/linux.mod. 이제 OS로 부팅하지 않고 grub 자체 에서이 설정을 저장하는 방법을 알아 내야합니다.

set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal

업데이트 4

글쎄, 리눅스로 부팅하는 것이 필요해 보인다. 우분투로 부팅 한 후 매뉴얼에 설명 된 다음 단계를 수행했습니다 .

sudo update-grub
sudo grub-install /dev/sda

이 문제는 해결되지 않았습니다. 그래 브 구조 프롬프트가 계속 나타납니다. 영구적으로 수정하려면 어떻게해야합니까?

또한 일부 명령의 경우 hd0에서와 같은 드라이브 번호를 / dev / sda 에서처럼 드라이브 문자로 변환해야한다는 것을 알았습니다. hd1은 sdb, hd2는 sdc 등이됩니다. grub에 (hd0, msdos6)로 나열된 파티션은 / dev / sda6으로 변환됩니다.

업데이트 5

다음이 왜 grub을 수정하지 않았는지 알 수 없었습니다.

sudo update-grub
sudo grub-install /dev/sda

따라서 https://help.ubuntu.com/community/Boot-Repair 게시물 의 답변을 기반으로 부팅 복구 를 다운로드 했습니다. “권장 복구 (가장 자주 발생하는 문제 복구)”옵션을 선택한 후에는 트릭을 수행하는 것 같습니다.



답변

다음이 왜 grub을 수정하지 않았는지 알 수 없었습니다.

sudo update-grub
sudo grub-install /dev/sda

그래서 GRUB 복구 게시물에 입력 된 Persist 명령 의 답변을 기반으로 부팅 복구 를 다운로드 했습니다. “권장 복구 (가장 자주 발생하는 문제 복구)”옵션을 선택한 후에는 트릭을 수행하는 것 같습니다.

또한 Grub Customizer 를 사용 하여 부팅 항목의 순서를 사용자 정의했습니다.


답변

이 문제의 다른 원인이 있습니다. 이 특정한 경우에 GRUB은 어떤 식 으로든 손상되어 수리 또는 재설치가 필요했습니다. 그러나 Grub 복구에 표시된대로 “알 수없는 파일 시스템”오류와 함께 “부팅 복구”로 실패하면 GRUB이 설치된 루트 파티션이 손상되었을 수도 있습니다. 이 문제를 해결하려면

이것은 가능한 해결책이지만 루트 파티션이 더 손상되지 않도록 사용해서는 안됩니다. 명령을 실행하면 fsck -t ext4 /dev/sda1이 프로그램은 손상된 파일 시스템에서 오류를 검색하고 복구하려고 시도합니다. sda1을 실제 루트 파티션으로 바꾸십시오. ext4를 실제 파일 시스템으로 교체하십시오. 파일 시스템을 알아야합니다. 그렇지 않으면 파티션이 더 손상됩니다. 자세한 정보 는 손상된 파일 시스템 복구 를 참조하십시오.


이 질문에 답이 있지만 저에게 도움이되는 문제를 해결할 수있는 다른 방법이 있습니다. 이 단계는 초보자를위한 고통스러운 비디오 Grub Rescue- Guide에 설명되어 있습니다 . 즉, GRUB 2를 수리하는 대신 완전히 다시 설치합니다.

이 비디오는 시청하기가 매우 어렵 기 때문에 아래 단계를 나열합니다 (동영상을 보는 것이 얼마나 고통 스러운지에 관계없이).

  1. 우분투 라이브 세션을 시작하십시오. 비디오는 라이브 CD를 사용하는 반면 라이브 USB를 사용했습니다. 라이브 USB에 하드 드라이브와 동일한 버전의 Ubuntu가 있는지 확인했습니다.
  2. 루트 파티션이 마운트 된 위치를 찾으십시오. 비디오에서 사용자는 노틸러스를 사용하여 마운트 된 각 드라이브를 탐색합니다. 긴 문자열과 숫자로 마운트되었습니다. 이 경우 다음 단계에 따라 파티션을 다시 마운트하십시오. 그렇지 않으면 5 단계로 진행하십시오.
  3. Ctrl+ Alt+로 터미널을 불러오고 명령을 T사용 mount하여 파티션 이름을 찾으십시오.
  4. 파티션을 마운트하십시오. 미디어 폴더에 새 폴더를 만듭니다. sudo mkdir /media/ubuntu. 그런 다음 파티션을 해당 폴더에 마운트하십시오. sudo mount /dev/sdxx /media/ubuntu여기서 xxsdxx3 단계에서 판정된다.
  5. 라이브 CD / USB의 루트 디렉토리에서 Ubuntu 버전의 루트 디렉토리로 다음 디렉토리를 바인딩하십시오. 디렉토리는 dev procsys입니다. 다음 명령으로 수행하십시오.

    sudo mount --bind /dev /media/ubuntu/dev
    sudo mount --bind /sys /media/ubuntu/sys
    sudo mount --bind /proc /media/ubuntu/proc
    
  6. 루트 디렉토리를 Ubuntu 파티션의 디렉토리로 변경하십시오. sudo chroot /media/ubuntu/

  7. 위의 작업을 완료 한 후 GRUB 2를 다시 설치하면 라이브 CD / USB의 루트 디렉토리가 아닌 Ubuntu 배포의 루트 디렉토리에 설치됩니다. 계속해서 달려sudo grub-install /dev/sdx

이것이 라이브 CD / USB를 사용하여 GRUB을 수정하는 방법입니다. 이 방법은 YouTube 사용자 crazytechzone에 의해 개발되었습니다.


답변

사용하다:

  1. set prefix=(hdX,Y)/boot/grub. 앞에서 결정한 값을 사용하십시오.
    예 : Ubuntu 시스템이 sda5에있는 경우 다음을 입력하십시오.
    set prefix=(hd0,5)/boot/grub
  2. set root=(hdX,Y). 예:set root=(hd0,5)
  3. insmod normal. 일반 모듈을로드하십시오.
  4. normal

/boot/grub폴더가 어디에 있는지 알기 위해서는 기본적으로 GRUB이 필요 합니다. 이것이 작동하지 않으면 부트 CD에서 GRUB 설치를 수행하는 것이 좋습니다.


답변

재밌어요, 한 시간 전에 같은 문제가 있었어요!

어쨌든, 이것은 내가 한 일입니다.

  1. 우분투로드 :

    set root=(hd0,6)
    set prefix=(hd0,6)/boot/grub
    insmod normal
    normal
    

    우분투가 6에 설치되어 있기 때문에?

  2. 터미널을 실행하십시오.

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    

답변

우분투에서 부팅 복구 설치

  1. 우분투 라이브 CD 또는 라이브 USB로 컴퓨터를 부팅하십시오.

  2. “Try Ubuntu”를 선택하십시오

  3. 인터넷 연결

  4. 새 터미널 ( Ctrl+ Alt+ T)을 열고 다음을 입력하십시오.

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  5. 를 누릅니다 Enter.

  6. 그런 다음 다음을 입력하십시오.

    sudo apt-get install -y boot-repair && boot-repair
    
  7. 를 누릅니다 Enter.

부팅 복구 사용

권장 수리

  1. 다음 중 하나에서 부팅 복구를 시작하십시오.

    에이. 대시 (화면 왼쪽 상단의 Ubuntu 로고)

    비. 또는 시스템-> 관리-> 부팅 복구 메뉴 (우분투 10.04 만 해당)

    씨. 또는 터미널에 ‘boot-repair’를 입력하여

  2. 그런 다음 “권장 수리”버튼을 클릭하십시오. 복구가 완료되면 종이에 표시된 URL (paste.ubuntu.com/XXXXX)을 기록한 다음 재부팅하고 OS 액세스를 복구했는지 확인하십시오.

  3. 수리가 성공하지 못한 경우 이메일 또는 포럼으로 귀하를 도와주는 사람들의 URL을 표시하십시오.


답변

문제의 또 다른 원인은 드문 경우지만 부팅 드라이브의 파일 시스템이 충돌 할 수 있다는 것입니다. 다른 답변에서 언급 한 바와 같이, 나는 처음 사용 ls은 GRUB 구조 프롬프트에서 모든 드라이브 / 파티션을 나열하는 명령을하지만, 모두가 보고 알 수없는 파일 시스템 오류 . 마지막으로 다음과 같이 파일 시스템을 복구하여 Ubuntu 16.04 (Xenial Xerus)의 문제를 해결했습니다.

  1. USB 스틱에서 부팅 (설치하지 않고 Ubuntu 사용)

  2. 부팅 드라이브를 찾습니다 (드라이브 용량을 확인하거나 fsck각 파티션에서 수행).

    sudo fdisk -l
    
  3. 파일 시스템을 복구하십시오.

    sudo fsck /dev/sdb1
    
  4. 파일 시스템이 수정되고 깨끗해지면 부팅 드라이브에서 시스템을 재부팅하십시오.