파티션 테이블없이 전체 ext4 디스크에 GRUB을 설치하는 방법은 무엇입니까?


15

현재 전체 디스크 /dev/sda를 ext4로 포맷하고 젠투를 설치했습니다.

(MBR이없고 파티션이 전혀 없습니다.)

그러나 마지막으로 GRUB을 MBR에 작성 해야하는 것처럼 보이기 때문에 GRUB을 설치할 수 없습니다.

# grub-install /dev/sda
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
The file /boot/grub/stage1 not read correctly. 

둘 다 grub작동 하지 않습니다 .

# grub
grub> root (hd0)
 Filesystem type unknown, using whole disk

grub> setup (hd0)
 Error 17: Cannot mount selected partition

MBR없이 GRUB을 / dev / sda에 설치할 수 있습니까?

PS /boot디렉토리 및 grub.conf파일 :

# tree /boot 
/boot
|-- boot -> .
|-- grub
|   |-- default
|   |-- device.map
|   |-- e2fs_stage1_5
|   |-- fat_stage1_5
|   |-- ffs_stage1_5
|   |-- grub.conf
|   |-- iso9660_stage1_5
|   |-- jfs_stage1_5
|   |-- menu.lst -> grub.conf
|   |-- minix_stage1_5
|   |-- reiserfs_stage1_5
|   |-- splash.xpm.gz
|   |-- stage1
|   |-- stage2
|   |-- stage2_eltorito
|   |-- ufs2_stage1_5
|   |-- vstafs_stage1_5
|   `-- xfs_stage1_5
`-- kernel-2.6.36-gentoo-r5

# cat /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.36-r5
root (hd0)
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda

title Gentoo Linux 2.6.36-r5 Rescue
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda init=/bin/bb

# cat /boot/grub/devices
(fd0)   /dev/fd0
(hd0)   /dev/sda

사용한 명령과 설치하려고 할 때 나타나는 오류 메시지를 포함시킬 수 있으면 도움이됩니다. 예를 들어, 당신은 시도 grub-install /dev/sda했습니까?
phunehehe

이미 MBR을 사용하여 디스크 레이아웃을 다시 만들고 원시 파일 시스템을 디스크의 단일 파티션에 복사했습니다. 그래도 새로운 Gento 설치를 다시 시도하고 나중에 오류 메시지를 붙여 넣습니다. 감사합니다
Xiè Jìléi

편집 오류 메시지를 추가했습니다.
Xiè Jìléi

답변:


5

BIOS는 디스크의 첫 번째 섹터 (512 바이트)를 읽고 디스크로 분기합니다. 디스크에 PC 스타일 파티션이 포함 된 경우 첫 번째 섹터에도 파티션 테이블이 포함됩니다. 디스크에 단일 파일 시스템이 포함 된 경우 첫 번째 섹터에는 파일 시스템이 결정한 내용이 포함됩니다. ext [234] (및 다른 많은 파일 시스템)의 경우, 첫 번째 섹터 ¹는 부트 로더 용으로 예약되어 있으며 처음에는 0입니다. 에 Grub을 설치할 수 있습니다 /dev/sda.

즉, 파티션 테이블이없는 장치에서 부팅을 거부하는 BIOS가 가끔 있습니다. (파티션 테이블이 포함 된 일부 외부 장치에서 부팅을 거부하는 BIOS도 있습니다!) 이러한 BIOS 중 하나가 있으면 파티션 테이블을 만들어야합니다.

파티션 테이블이 필요하지 않더라도 권장됩니다. 몇 킬로바이트 만 낭비하고 Linux 이외의 많은 OS에서 가독성을 얻고 공동 시스템 관리자에게는 놀라지 않을 것입니다. 실수로 디스크를 Windows를 실행하는 컴퓨터에 연결하는 경우 파티션 테이블이 표시되지 않으면 디스크를 다시 포맷하는 것이 좋습니다. 반면 파티션 테이블이 있으면 인식하지 못하는 파티션 유형

¹ 실제로 첫 번째 블록은에 전달 된 옵션에 따라 블록이 1kB, 2kB 또는 4kB 인 것으로 생각합니다 mkfs.


5
VirtualBox의 게스트 젠투 OS에서 사용됩니다. raw로 백엔드되는 .vmdk 가상 디스크를 작성했습니다 image.ext4. 하나의 파일 시스템에 전체 디스크를 사용하는 이유는 다음과 같은 까다로운 파티션 오프셋없이 볼륨을 호스트 OS에 직접 마운트하기 때문 -o loop,offset=1048576입니다.
Xiè Jìléi

1
이와 관련하여 시스템에 FC 디스크가 연결되어 있습니다. 이들은 파티션이없는 데이터베이스 또는 LVM에서 사용하기위한 JBOD로 의미됩니다. 로 Grub을 다시 설치하면 --recheck파티션이없는 드라이브로 맵 테이블을 업데이트 한 다음 존재하지 않는 파티션 테이블을 씹을 때 불평합니다. 맵 파일에서 이러한 드라이브 경로를 제거하면 경고가 사라집니다.
테우스


0

거의 모든 것이 파티션 테이블을 기대합니다. 최소한 / boot, swap 및 / root 파티션을 갖는 권장 지침을 다시 설치하고 따라야한다고 생각합니다. 스왑은 어디에 있습니까?


4
리눅스는 상관하지 않습니다. 대부분의 BIOS는 신경 쓰지 않습니다 (일부는 있지만). 별도의 스왑 및 부트 파티션은 필요 /boot하지 않으며 최신 하드웨어에서는 더 이상 권장되지 않습니다 (디스크 크기에 대한 BIOS 제한을 무시하고 Grub 1의 LVM과 같은 고급 디스크 모드에 대한 지원 부족).
Gilles 'SO- 악마 중지'12

@Gilles 당신은 분리없이 LVM을 가질 수 /boot있습니까? 그렇다면 왜 /boot같은 파티션 에 두는 것이 더 낫 /습니까?
phunehehe

2
@phunehehe : /bootLilo 또는 Grub 2와 별도로 LVM을 가질 수 있지만 Grub 1과 는 별도로 LVM을 가질 수 있습니다 . 별도 /boot의 관리 비용이 있습니다 (하나 이상의 파티션을 만들어야 /boot하며 /, 따라서 이유가있는 경우 하나만 사용하십시오 (예 : 부트 로더가 LVM을 이해하지 못하는 경우).
Gilles 'SO- 악마 그만

1
@Gilles 지금 당신은 내가 다시 설치하는 느낌이
들게

1
전체 디스크 암호화와 같은 것을 가질 수도 있습니다 :)
XTL
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.