저는 일반적인 방법으로 /dev/sda에 GRUB2를 설치했습니다(MBR의 1단계, 섹터 0-63의 1.5단계). BIOS/MBR을 사용하고 있습니다. 내 디스크에는 4개의 파티션이 있습니다.
- Win10 100MB -- 예약됨
- 윈10 30GB
- 리눅스 20GB
- 데이터 파티션(으로 생각
/home
) – 디스크의 나머지 부분
물론 GRUB2의 2단계가 설치되었습니다 /dev/sda3
. /boot/grub/
이제 문제는 이를 지우고도 GRUB 명령줄에서 수동으로 Win10으로 부팅할 수 있느냐는 것 /dev/sda3
입니다 /dev/sda4
. insmod part_msdos
등을 insmod ntfs
최대한 사용하십시오 chainloader +1
.
~에 따르면위키피디아, 괜찮습니다. 하지만 인터넷의 일부 다른 소스에서는 2단계를 제거한 후 정체될 수 있음을 나타냅니다(그러나 해당 소스는 GRUB 레거시 버전을 참조할 수 있습니다).
왜 이 작업을 수행해야 합니까? 나는 그것을 연장하고 싶다 /dev/sda2
. 내가 아는 한, 가장 안정적인 방법은 표준 Win 10 디스크 파티셔닝 도구를 사용하는 것입니다(Linux가 이 기능을 수행한다고는 생각하지 않습니다). 확장하려는 동일한 파티션으로 부팅하는 동안 이 작업을 수행하는 것은 위험하다고 알려져 있지만 저는 그렇게 했고 훌륭하게 작동합니다(부팅 간에 확장하여 더 원활하게 처리할 수 있는 일부 타사 소프트웨어도 있습니다).
따라서 확장자를 /dev/sda3/
제거한 다음 Live USB로 부팅하고 할당되지 않은 공간을 다시 분할하고 Linux를 설치하고 GRUB를 설치하고 완료하고 싶습니다./dev/sda4/
/dev/sda2/
내 유일한 관심사는 문제가 발생하면(보통 그렇듯이) 수동으로 시작할 수 있는지 여부입니다.
또 다른 방법이 있습니다. GRUB2 Stage 2를 USB에 설치하고(내 BIOS 부팅 순서에서 USB가 HDD 앞에 있음) USB에서 부팅하는 것입니다. 하지만 이건 서툴기 때문에(한 번도 해본 적이 없어서) 가능하면 피하는 편이 낫습니다.
(물론 백업은 했습니다.)
답변1
그것은 밝혀그렇지 않다그대로이지만이것은 초기 추가 노력 이후입니다..
내가 뭘 한거지
- Linux LiveUSB에서 부팅하고 마운트
/dev/sda3
(grub이 있는 Linux 파티션)mv /boot/grub /boot/grib
(또는 1.5단계에서 더 이상 2단계를 찾을 수 없도록 하는 다른 것) - HDD에서 재부팅하면 grub이 2단계 로드에 실패하고 grub 복구 모드로 다시 돌아갑니다.
- 그러나 복구 모드는 아주 최소한의 지원만 제공하므로 예를 들어 , 또는 등을 실행할 수
insmod part_msdos
있지만 아무 것도 작동하지 않습니다. 그러나 (물론) 그것은 그것을 지원합니다.insmod ntfs
chainloader +1
ext4
- 필요한 모든 모듈을 수동으로 로드할 수 있습니다(예: 전체 경로를 사용하거나
insmod (hd1,msdos3)/boot/grib/i386-pc/ntfs.mod
간단히 접두사를 먼저 설정한set prefix=(hd1,msdos3)/boot/grib
다음 상대 경로를 사용insmod ntfs
). - 일반 모듈을 로드한 다음 복구 모드에서 bash와 같은 grub 명령줄로 grub을 입력하면
normal
작업이 더 쉬워집니다 . 여기에서 필요한 모든 모듈을 다시 로드할 수 있습니다(예: 체인로더 모듈도 로드해야 함). - 마지막으로 다음과 동일한 명령 순서를 복사하여 Win10(또는 무엇이든)을 로드합니다.
grub.cfg
해결책
i386-pc
그래서 이 모든 것을 염두에 두고 임시 해결책으로 전체 디렉토리를 별도의 USB에 복사하고 필요에 따라 모듈을 수동으로 로드하기만 하면 된다고 생각했습니다. 별도의 USB가 MBR로 포맷되어 있고 파티션이 있는지 확인하세요 ext4
.
고쳐 쓰다:실제로 작동한다. USB 드라이브를 MBR로 포맷하고 ext4
파티션을 생성한 후 이전 설치에서 복사하세요(올바르게 구성됨) /boot/grub/
. grub이 grub 구조로 돌아가면 set prefix=(hdX,msdosY)/boot/grub
(여기서 X
는 USB 드라이브 번호이고 Y
는 해당 파티션임) 입력한 다음 insmod normal
및 를 입력하세요 normal
. 그게 다입니다. grub stage 2가 로드되어 잘 작동합니다.