Windows 10 업그레이드로 그럽 구조


75

데스크탑에서 Windows 7 및 Linux Ubuntu를 이중 부팅하고 있었고 오늘은 무료 Windows 10 업그레이드를 제공 한 날입니다. 얼마나 흥미 진진한! 업데이트를 받았으며 설치 중이었고 30 분 동안 낮잠을 잤습니다. 그러나 컴퓨터로 돌아 왔을 때 그 로브 구조 프롬프트가 나타납니다.

error: no such partition.
Entering rescue mode...
grub rescue>

입력하면 다음과 같은 결과가 나타납니다 ls.

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

그럽 구조 프롬프트가 나타난 사람들을 간략히 살펴본 후 입력 set하고 다음을 얻었습니다.

grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos6)/boot/grub
root=hd0,msdos6

나는 같은 특정 명령 normal이 작동하지 않는다는 것을 알게 된 후에도 여전히 길을 잃었고 Linux 이미지 CD로 부팅하고 터미널에서 일부 명령을 실행하는 비디오 자습서를 발견했습니다. 운 좋게도 나는 CD를 가지고 있었고 거기에서 부팅했다. sudo fdisk -l그러나 터미널에 입력했을 때 이것이 내가 얻은 것입니다.

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc03ede74

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848  1547022335   773407744    7  HPFS/NTFS/exFAT
/dev/sda3      1547022336  1547943935      460800   27  Hidden NTFS WinRE
/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

내 장치 중 어느 것도 리눅스 시스템을 가지고 있지 않다고 말합니다! 그리고 그 이상으로 비디오 자습서를 따를 수 없었습니다 ...

나는 내 두뇌를 조금 놀리고 sda2에 Windows 시스템이 포함되어 있다고 판단했다. 조금 더 생각한 후, 우분투를 설치할 때 약 200GB의 하드 디스크 공간을 우분투와 관련된 것에 할당하는 것을 기억합니다. 나는 정확히 어느 것을 기억하지는 않지만 기본적으로 우분투 "하드 디스크 공간"이라고 생각하며 부팅 파일이 없었습니다. 나는 리눅스에 다른 두 가지를 할당했지만 크기는 매우 작았습니다 (아직 1GB 마크를 깨지 않음).

그렇다면 누구든지 업그레이드를 다시 시작할 수 있도록 도와 줄 수 있습니까? 리눅스가 들어있는 파티션을 완전히 제거 해야하는지는 신경 쓰지 않습니다.


1
LInux 파티션이 논리 Windows 인 경우 파티션 테이블을 사용하여 파티션 테이블을 다시 쓰지 않습니다. testdisk를 사용하십시오. 일부는 testdisk를 사용하여 복원하고 grub을 MBR에 다시 설치하고 모든 것을 정상으로 되돌 렸습니다. 그러나 모든 파티션을 기본 및 논리로 올바르게 포함해야 작동합니다. cgsecurity.org/wiki/TestDisk_Step_By_Step
oldfred

위의 레이아웃에서, 새로운 /dev/sda5또는 (hd0,msdos5)파티션 이후 디스크 끝에 3505 개의 섹터 만 남은 것처럼 보이며 , 이는 1.7MB에 불과하므로 Linux 파티션은 거의 숨길 수 없습니다. 가장 좋은 추측은 Linux 파티션 항목이 어떻게 든 그 자리로 옮겨졌으며 (# 6 대신 # 5) 유형이 설명 할 수 없을 정도로 변경되었다는 것입니다. 가장 먼저 시도해야 할 것은 ls (hd0,msdos5)/GRUB 구조 프롬프트입니다.
Josip Rodin

1
무지한 OS와 같은 창을 사용하지 않는 또 하나의 이유
Aydin K.

답변:


64

내 컴퓨터에는 Windows 8이 사전 설치되어 있으므로 우분투를위한 공간을 만들기 위해 Windows 파티션을 축소했습니다. 그것이 작년에 어떻게 작동했는지입니다. Windows 10 업그레이드에서 두 번째 재부팅 후 컴퓨터가 더 이상 부팅되지 않았습니다. GRUB는 grub rescue명령 프롬프트 만 표시했습니다 . 나중에 Windows가 파티션 구성표를 변경했기 때문에 문제가 발생했음을 알았습니다. 부팅 파티션 (일반 GRUB 데이터 포함)은 더 이상 GRUB이 예상 한 위치가 아닙니다. 어떻게 이런 일이 일어 났는지 모르겠습니다.

복구 모드에서 가장 먼저 할 수있는 일은 ls명령으로 파티션을 보는 것 입니다. 광산은 :

  • (hd0, gpt1),
  • (hd0, gpt2),
  • 기타

어떤 파티션이 부팅 파티션인지 확인하십시오. Tab완료 가 없습니다 . 완전히 입력해야합니다. 올바른 파티션을 찾을 때까지 다음 명령을 시도했습니다.

ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/

기타

그런 다음 set동일한 프롬프트를 입력 하십시오. GRUB이 파일을 찾는 위치를 표시합니다. 제 경우에는 (hd0, gpt6)이 (hd0, gpt7)로 이동했습니다. set 명령이 표시되었습니다.

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

일반 GRUB으로 돌아가려면 먼저 prefix오른쪽 파티션을 가리 키도록 설정을 변경하십시오 . 필자의 경우 명령은 다음과 같습니다.

set prefix=(hd0,gpt7)/boot/grub

그런 다음 복구에서 일반 모드로 전환 할 수 있습니다.

insmod normal
normal

다음 root과 같이 설정을 수정했을 수도 있습니다 .

set root=(hd0,gpt7)

그러나 Windows 체인로드 항목에는 문제가되지 않으므로 꼭 필요한 것은 아닙니다. 일반 GRUB 메뉴에 들어가면 Windows를 부팅하고 Windows 업그레이드를 완료 할 수 있습니다. 문제는 재부팅 할 때마다 grub 구조에 올바른 파티션에 대해 알려 주어야한다는 것입니다. 그것이 내가 한 방법입니다. Windows가 파티션이나 부팅에 대해 더 많은 변경을 수행할지 확실하지 않기 때문에 GRUB의 문제를 나중에 떠났습니다.

Windows가 끝나면 GRUB 문제를 해결하기 시작했습니다. e우분투 부팅 옵션을 편집하려면 누르십시오 . 나는 모든 변경 (hd0,gpt6)(hd0,gpt7)우분투는 부팅.

그러나 암호화 된 파티션과 cryptswap을 사용합니다. 부팅시 우분투는 암호 문구를 물었습니다. 다행히도 우분투 설치시 저장하고 부팅시 입력했습니다. 우분투는 문제없이 부팅되었습니다.

그때 수정 /boot/grub/grub.cfg내가 대체 어디에 파일을 (hd0,gpt6)함께 (hd0,gpt7)하고 수행 :

sudo grub-install

그 시점에서 남아있는 유일한 문제는 암호화였습니다. 루트 우분투 파티션 수는 6 개가 아닌 7 개로 증가했기 때문에 스왑 파티션도 비슷한 변화를 겪었습니다. 대신 /etc/crypttab파일을 가리 키 도록 변경해야했습니다 ./dev/sda8/dev/sda7

우분투 (루트 및 스왑)에 두 개의 파티션 만 사용하고 있습니다. Windows와 공존하는 다른 운영 체제에서 더 많은 파티션을 사용하는 경우 더 많은 변경이 필요할 수 있습니다. 특히 파티션이 UUID가 아닌 번호에 따라 마운트 된 경우. 를보십시오 /etc/fstab. 파티션이 UUID로 식별되면 문제가 없어야합니다. 그러나 /dev/...행이 있으면이 파티션의 번호를 다시 매긴 경우 숫자를 수정해야합니다.


2
이것은 나에게 큰 대답이었습니다. 우분투 디스크가 없었고 Windows를 8.1에서 10으로 업그레이드하고 동일한 문제가있었습니다. 따라서이 답변은 입력하고 업데이트가 완료 될 때까지 계속 수행 할 수 있었기 때문에 추가 크레딧을 얻습니다. 베이컨을 구해 주셔서 감사합니다.
잭스

2
이 솔루션은 Win 10이 자체적으로 업그레이드하기로 결정하고 부팅 레코드를 엉망으로 만들 때 완벽하게 작동했습니다 (7에서 10으로의 업그레이드가 장애없이 중단되었습니다)
pedorro

9
command의 ls (hd0,msdos1)/ ls (hd0,msdos1)/boot ls (hd0,msdos2)/ etc.모든 항목과 시도 할 ls때마다 를 시도했습니다 error: unkown filesystem.
Jacques MALAPRADE

2
도와 주셔서 감사합니다. 나에게 분명하지 않은 한 가지는 (우분투와 그럽을 처음 접했기 때문에) 우분투로 부팅 한 후 grub 구성을 편집해야한다는 것입니다. 그래서 부팅하고 구성을 편집 한 sudo nano /boot/grub/grub.cfg다음 실행했습니다 sudo grub-install /dev/sda(어떤 이유로 매개 변수가없는 호출이 나에게 실패했습니다). 그리고 나서야 영구적 인 변화가 일어났습니다.
Nikita G.

1
모든 항목에 대해 ls (hdo, msdos1) 등을 시도했습니다. 알 수없는 파일 시스템 오류
Ashley G

13

리눅스와 함께 창을 설치하거나 업그레이드하는 것은 문제가 될 수 있습니다.

이것을 시도하십시오 : https://help.ubuntu.com/community/Boot-Repair



Windows 10 기술 미리보기를 설치 한 후 문제를 해결하는 데 사용했으며 제대로 작동했습니다. 기본적으로 현재 설치된 모든 운영 체제에서 작동하도록 grub을 다시 설치합니다. 리눅스 파티션 (sd #)에 grub을 설치하도록하십시오.

행운을 빕니다!


안녕하세요! 도와 주셔서 감사합니다! 실제로 어떤 파티션인지 확실하지 않습니다! 그러나 나는 그것이 작동하는지 조금 살펴 보았습니다.
LChaos2

문제 없어요! 항상 기쁘다.
Patrick

안녕하세요! 그래서 boot-repair-disk를 부팅하고 권장 복구를 사용했습니다. 컴퓨터를 재시작하고 다시 시작했지만 Windows 부팅 관리자로 이동하여 최근 하드웨어 또는 소프트웨어 변경으로 인해 서명이 잘못되었거나 손상된 파일이 설치되었을 수 있습니다. 파일은 \ Windows \ system32 \ winload.exe, 상태 0xc0000428입니다. Enter 키를 누르면 부팅 관리자로 시작하여 시작할 OS를 선택하고 Windows 7 만 표시합니다. Windows 7에서 Enter 키를 누르면 동일한 오류 화면으로 돌아가 루프가 발생합니다.
LChaos2

일부 조사를 수행 한 후 오류 코드 (0xc000428)가 일부 디지털 서명으로 확인되지 않은 winload.exe와 관련이있는 것 같습니다. 그것에 대해 아무 말도하지 않습니까?
Patrick

1
@ LChaos2 상황에 대한 업데이트?
hg8

10

파티션을 변경하기 전에 백업을하고 다른 장치에 저장하십시오. SDA가 아닌 경우 올바른 드라이브로 변경하십시오. 그런 다음 testdisk로 잘못된 세트를 복원하면 다시 시작할 수 있습니다. 당신은 testdisk로 복원 할 때 모든 현재와 누락 된 논리를 원합니다.

sudo sfdisk -d /dev/sda > parts.txt

누락 된 파티션은 여기에서 또는 1547에서 확장 파티션의 시작과 1915에 표시된 첫 번째 파티션 사이에 있습니다.

/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

testdisk를 사용할 수 있지만 CHS를 사용합니다. 기존 파티션과 누락 된 파티션을 모두 논리로 선택해야합니다. 파티션을 몇 번 변경했는지에 따라 많은 버전이 표시 될 수 있습니다. 따라서 다른 현재 파티션과 겹치지 않고 누락 된 항목과 일치하는 크기를 선택하십시오. 올바르게 복원 된 일부는 부팅 만 가능하고 일부는 grub을 다시 설치해야합니다. 일부는 복원 파티션을 정정하지 못했습니다.

http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

다른 복구 도구는 부분적으로 구제되었습니다. 섹터를 사용하지만 제공하는 범위는 현재 파티션과 겹치지 않고 누락 된 파티션 외부에 있어야합니다. 정확한 시작과 끝을 알고 있다면 가장 좋습니다. 헤어진 사람보기

http://www.gnu.org/software/parted/manual/html_node/rescue.html

부분 구조를 사용한 사용자 :

http://ubuntuforums.org/showthread.php?t=1775331&p=10905969#post10905969


3
나는 똑같은 문제를 만났고 리눅스가 있었던 곳에서 "여유 공간"을 보여 주었다. "여유 공간"의 출발과 도착으로 구조를 실행하면 ext4가 돌아옵니다!
speedogoo

3
gparted가 ext4가 있었던 여유 공간을 보여 주었다고 말하고 싶습니다. 란을 나누고, 섹터로 설정하고, 파티션을 인쇄하고, "여유 공간"의 시작 / 끝으로 복구 (섹션에 s를 추가하는 것을 잊지 마십시오)하고 ext4가 @speedogoo와 정확히 동일하게 돌아 왔습니다. 그럽으로 바이올린을 칠 필요가 없습니다.
Amedee Van Gasse

2
더 많은 사람들이 파티션을 잃어 버렸기 때문에 Windows 10이 파티션 테이블로 무엇을하고 있습니까? 제 경우에는 ext4가 논리 파티션에있었습니다.
Amedee Van Gasse

이 빵 부스러기에 감사합니다. 아내의 잃어버린 리눅스 파티션을 부분 구조로 복구 할 수있었습니다. 나중에 그럽 설치, 우리는 다시 작동했다.
bheeshmar

7

그것은이다 불쾌한 윈도우 파티션 프로그램 버그, 특정의 Linux 없습니다. 필자의 경우 NTFS 파티션을 아이러니하게 삭제했습니다.

Windows 부팅 파티션 이 너무 작아 Windows 10 복구 환경을 포함 할 수없는 경우 Windows 10 설치 관리자 /dev/sda3는 주 파티션의 끝 부분에 새 파티션 ( )을 만듭니다 .sda2sda1

이를 수행하기 위해 파티션 테이블을 다시 작성할 때 확장 파티션 테이블의 모든 논리 파티션에 sda4대해 이전 파티션 번호 이전의 디스크에있는 경우이를 포기합니다.

귀하의 경우 Linux 파티션은 새로운 디스크 이전에 디스크 sda5에 있지만 파티션 sda5이전 보다 파티션 번호가 더 높습니다 .

거대한 Windows 10 업그레이드 로그를 살펴보면 이전 파티션 테이블과 새 파티션 테이블과 함께 "6 before 5, Nothing to do"와 같은 메시지가 표시됩니다.

Windows는 삭제 한 파티션의 내용을 덮어 쓰지 않으므로 위치를 찾을 수 있으면 복구 할 수 있습니다. 내 경우에는 파티션 테이블의 백업이 있었지만 oldfred의 답변에 설명 된대로 testdisk 를 사용 하면 모든 것을 찾을 수있는 좋은 기회가 있습니다. 귀하의 경우 하나 이상의 파티션이 삭제 되었으므로 분할 된 구조 를 사용하기가 어렵습니다.

사용 TestDisk가를 터미널 타입으로, 우분투 라이브 CD에서 sudo apt-get install testdisk설치하고, sudo testdisk실행합니다.

파티션 테이블을 복구 한 후 GRUB을 포함하는 Linux 파티션의 숫자가 이전과 다를 수 있으므로 GRUB 복구 프롬프트가 표시 될 수 있습니다. 그렇다면 부트 복구 는 이제 GRUB을 수정할 수 있습니다.

다시 Ubuntu Live CD를 사용하여 다음을 입력하십시오.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

설치하고 실행하십시오.

이제 Windows가 업그레이드를 완료 할 수 있습니다.


문제가 무엇인지 명확하게 설명해 주셔서 감사합니다. 질문에 설명 된 것과 같은 상황에있었습니다. 그러나 testdisk는 삭제 된 리눅스 파티션을 찾지 못했습니다. 나 헤어를 들어 구조 트릭을했고, 나는 10 업그레이드 후 윈도우를 계속할 수있었습니다
토비

"Windows는 삭제 한 파티션의 내용을 덮어 쓰지 않습니다"어떻게 할 수 있습니까? 나를 위해 만든 새로운 파티션 (내 리눅스 파티션을 죽인 후)은 전체 디스크를 차지했습니다. 이것이 쓰기가 어디든 갈 수 있다는 의미는 아닙니다.
Greg Bell

나는 당신을 얼마나 사랑하는지 표현할 수 없습니다
aviggiano

1

부팅 복구를 사용하려면 BIOS에서 설정해야합니다.

  • UEFI를 활성화합니다 (내 BIOS에서 :)

    레거시 지원 비활성화

  • 보안 부팅 비활성화

보안 부팅을 사용하도록 설정했을 수 있으므로 "잘못된 서명 된 파일"오류가 발생합니다.

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