GRUB 구조-오류 : 알 수없는 파일 시스템


59

멀티 부트 시스템을 설정했습니다. 시스템에는 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 게시물 의 답변을 기반으로 부팅 복구 를 다운로드 했습니다. "권장 복구 (가장 자주 발생하는 문제 복구)"옵션을 선택한 후에는 트릭을 수행하는 것 같습니다.


zdnet.com/…에도이 주제에 대한 유용한 정보가 있습니다.
K7AAY

비슷한 문제가 있지만 내 라이브 USB도 쓸모없는 goo.gl/Mr61V1
Ramesh

부팅 순서 변경, Windows 7 복구 CD에서 시작, 터미널 시작, "Bootrec.exe / FixMbr"(따옴표없이)을 입력하고 재부팅하면 문제가 해결되었습니다.
consuela

이전 업데이트 3에서는 저에게 효과적이지만 이제는 같은 문제입니다. 그래 브 구호에 나열된 폴더로 시도해도 작동하지 않습니다. 기존 우분투가 나열되지 않은 우분투 ISO 장치를 사용하여 데이터를 백업하려고했습니다. 지금 어떻게해야합니까?
Jaccs

이것은 정식 질문 인 것처럼 보이지만 더 오래된 질문은 알 수없는 파일 시스템 : grub rescue 입니다.
Peter Mortensen

답변:


25

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

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

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

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


마지막 명령을 실행 한 후 sudo update-grub을 다시 실행해야하므로 작동하지 않았습니다. 라이브 세션에서 대상 파일 시스템을 mnt에 마운트하고 chroot를 파일 시스템에 마운트 한 다음 chroot에서 sudo update-grub을 실행해야합니다.
mchid

이 답변의 정보 (부팅 복구 설치 및 사용)와 질문을 사용하여 GRUB 메뉴에서 "Windows 복구 환경 (로더) (on /dev/sda1)" 에서 잘못된 항목을 선택한 Acer 넷북에서 복구했습니다. 부팅시
Peter Mortensen 2016 년

7

이 문제의 다른 원인이 있습니다. 이 특정한 경우에 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에 의해 개발되었습니다.


6

사용하다:

  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 설치를 수행하는 것이 좋습니다.


도와 주셔서 감사합니다. 내 문제는 부트 디렉토리가 / dev / sda가 아닌 / dev / sdb에 있다는 것입니다. 그러나 부팅 복구는 자동으로 수정되었으므로 더 이상 아무것도 할 필요가 없었습니다.
user53817

3

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

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

  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
    

답변 주셔서 감사하지만 답변을 게시하기 전에 부트 복구 도구를 사용하여 grub을 수정했습니다. 이제이 게시물을 솔루션으로 업데이트했습니다. 나는 당신의 방법을 시도해 볼 수 있기를 바랍니다.
user53817

2

우분투에서 부팅 복구 설치

  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을 표시하십시오.


@penreturn 정말 감사합니다. : D
Jeel Shah

0

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

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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.