이 질문을 조사했지만 명확한 답을 찾지 못했습니다... 심지어 명확한 질문도 찾지 못했습니다. 그래서 간단한 예를 들어보겠습니다.
내 컴퓨터에는 **하드 드라이브 2개:**가 있습니다.
- 하드 드라이브 1:우분투리눅스와GRUB2존재하다막 생물 반응기.
- 하드 드라이브 2:어느다른 운영 체제(어떤 운영 체제에 영향을 미칩니까?)와 다른 MBR 로더.
GRUB2 전용우분투로 부팅(내 예에서는 첫 번째 하드 드라이브에 있음)
발급 update-grub
확실감지되지 않음OS는 두 번째 하드 드라이브에 있지만 하나도 있다는 것을 알고 있습니다.
내가 들어가면바이오스부팅 시간 및 부팅 순서를 HDD 2(두 번째 OS)로 변경좋은 부츠.
내가 어떻게 할 수있는GRUB2에 항목 추가부팅두 번째 하드 드라이브?
(사실은 이 질문을 할 수 있다고 생각합니다.아니요두 번째 하드 드라이브의 운영 체제를 지정합니다. 아니면? )
요청에 따라 os-prober
이 구성을 사용하여 샘플 머신의 출력을 추가합니다.
luis@threepwood:~$ sudo os-prober
/dev/sdb1:Windows 7 (loader):Windows:chain
/dev/sdb7:Ubuntu 14.04.3 LTS (14.04):Ubuntu:linux
이 특정 예에서는(BIOS에서 부팅 순서를 변경했습니다):
sdb
HDD-1 입니다.sda
HDD-2 입니다.
답변1
저는 보통 grub.cfg
수동으로 작성하고 절대 사용하지 않습니다 update-grub
. 그리고 부팅 위치를 선택할 수 있는 소위 기본 Grub2 부트로더가 있습니다. 그런 다음 각 Linux 배포판이 자체 루트 파티션에 자체 부트로더를 설치하도록 합니다. 이를 통해 Linux에서 편집할 수 있습니다. 내 메인 grub2 부트로더를 건드리지 않고도 자체 부트로더를 사용할 수 있습니다.
다른 디스크 MBR로 이동하기 위해 grub.cfg
디스크를 첫 번째 디스크로 간주할 필요가 없는 일반 OS에 대해 다음 항목을 설정했습니다.
menuentry "Boot from second disk" {
chainloader (hd1)+1
}
menuentry "Boot from third disk" {
chainloader (hd2)+1
}
menuentry "Boot from fourth disk" {
chainloader (hd3)+1
}
그래서 내가 원하는 다른 디스크에 MBR을 로드합니다.
그러나 첫 번째 디스크와 마찬가지로 다른 디스크를 보고 싶어하는 까다로운 Linux(및 일부 Windows)의 경우 grub 메뉴 항목에 몇 가지 명령도 추가하여 다음과 같이 보입니다.
menuentry "Boot from second disk and see it as first disk" {
set root=(hd1)
drivemap -s hd0 hd1
chainloader +1
}
menuentry "Boot from third disk and see it as first disk" {
set root=(hd2)
drivemap -s hd0 hd2
chainloader +1
}
menuentry "Boot from fourth disk and see it as first disk" {
set root=(hd3)
drivemap -s hd0 hd3
chainloader +1
}
모두 자세히 설명되어 있습니다.
(hd#)는 디스크를 나타냅니다. 여기서 #은 0부터 시작합니다.
Drivemap은 드라이브 스와핑을 수행하므로 모든 디스크를 첫 번째 디스크 또는 원하는 번호로 볼 수 있습니다(표시되는 두 디스크의 순서를 바꿉니다).
chainloader (hd#)+1은 디스크의 MBR로 점프합니다.
chainloader +1 (루트)에 저장된 첫 번째 섹터로 점프
set root=... (루트)가 소유하는 항목을 설정합니다.
(루트)는 덜 입력하는 데 사용할 수 있는 변수와 같습니다.
파일의 전체 문서를 보려면 grub.cfg
공식 웹페이지를 확인하세요.
답변2
그것은 간단합니다. 다음 단계를 따르세요.
예시 시나리오:
/dev/sda1
– 센트OS/dev/sdb1
– 데비안
CentOS 드라이브에 활성 MBR이 있다고 가정합니다. 이런 식으로 시작 후 Debian을 추가해야 CentOS 시스템에 들어갈 수 있습니다.
활성 운영 체제(이 시나리오에서는 CentOS)에서의 작업:
mount /dev/sdb1 /mnt/debian
menuentry
다음과 같이 전체 데비안 부분을 잘라냅니다/mnt/debian/boot/grub{2}/grub.cfg
:menuentry 'Debian GNU/Linux' --class debian --class gnu-linux ... { ... }
이제 파일을 만듭니다.
touch /etc/grub.d/11_linux
이것은 스크립트이므로 다음을 수행해야 합니다.
chmod +x /etc/grub.d/11_linux
다음에 추가:
#!/bin/sh echo "
11_linux
섹션을 붙여넣으세요 ."
끝까지 다 됐네요. 따라서 우리는 다음을 수행해야 합니다.centos #~> cat /etc/grub.d/11_linux #!/bin/sh echo "menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-78026456-ebcc-4eed-b59d-a3f0bdff7353' { load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 f2de4123-5a98-4568-99dd-e61940b99ab2 else search --no-floppy --fs-uuid --set=root f2de4123-5a98-4568-99dd-e61940b99ab2 fi echo 'Loading Linux 3.16.0-4-amd64 ...' linux /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/Thinkpad--vg-root ro quiet echo 'Loading initial ramdisk ...' initrd /initrd.img-3.16.0-4-amd64 }"
grub2-mkconfig -o /boot/grub{2}/grub.cfg
재시작.
바라보다.
답변3
안녕하세요, 방금 같은 문제가 발생했습니다. os-prober를 설치한 후 grub-customizer가 os-prober를 사용하여 두 번째 HDD에서 운영 체제를 찾아 부팅 메뉴에 추가할 수 있다는 것을 발견했습니다. 구성 파일을 편집하는 것보다 이것이 더 쉽다는 것을 알 수 있습니다 :)
답변4
두 번째 HDD에 대한 grub 구성에 항목을 추가해야 한다고 생각합니다.
어떤 운영 체제인지는 중요하지 않습니다.
저는 Windows HDD에서 grub2와 함께 듀얼 북을 사용하고 있습니다. Windows와 Linux를 감지하고 부팅할 운영 체제를 선택할 수 있는 메뉴를 제공합니다.
고급 구성, 체인 로딩 및 grub에 수동 항목 추가를 위해서는 다음 링크를 클릭하십시오: