Saat ini saya memiliki seluruh disk yang /dev/sda
diformat sebagai ext4, dan menginstal Gentoo.
(Tidak ada MBR, tidak ada partisi sama sekali.)
Tetapi akhirnya, saya tidak dapat menginstal GRUB di atasnya, karena sepertinya GRUB perlu menulis ke MBR.
# 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.
tidak grub
bekerja,
# grub
grub> root (hd0)
Filesystem type unknown, using whole disk
grub> setup (hd0)
Error 17: Cannot mount selected partition
Bagaimana saya bisa menginstal GRUB ke / dev / sda tanpa MBR?
PS /boot
Direktori dan grub.conf
file:
# 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
boot
grub-legacy
Xiè Jìléi
sumber
sumber
grub-install /dev/sda
?Jawaban:
BIOS membaca sektor pertama (512 byte) dari disk dan bercabang ke dalamnya. Jika disk Anda berisi partisi bergaya PC, sektor pertama juga berisi tabel partisi. Jika disk Anda berisi sistem file tunggal, sektor pertama berisi apa pun sistem file yang memutuskan untuk diletakkan di sana. Dalam kasus ext [234] (dan banyak sistem file lainnya), sektor pertama¹ dicadangkan untuk bootloader (dan pada awalnya nol). Anda dapat menginstal Grub di
/dev/sda
.Yang sedang berkata, ada sesekali BIOS yang menolak untuk mem-boot dari perangkat yang tidak mengandung tabel partisi. (Tetapi ada juga BIOS yang menolak untuk mem-boot dari beberapa perangkat eksternal jika mereka memang berisi tabel partisi!) Jika Anda memiliki salah satu dari BIOS ini, Anda harus membuat tabel partisi.
Bahkan jika tabel partisi tidak diperlukan, ini direkomendasikan. Anda hanya menyia-nyiakan beberapa kilobyte, dan mendapatkan keterbacaan di bawah banyak OS non-Linux dan kurang mengejutkan untuk co-sysadmin apa pun. Jika Anda secara tidak sengaja mencolokkan disk Anda ke mesin yang menjalankan Windows, ini mungkin menyarankan Anda untuk memformat ulang disk jika tidak melihat tabel partisi, sedangkan itu hanya akan mengeluh tidak dapat membaca data jika melihat tabel partisi dengan tipe partisi yang tidak dikenali.
¹ Sebenarnya, blok pertama, saya pikir, di mana satu blok adalah 1kB, 2kB atau 4kB tergantung pada opsi yang diteruskan
mkfs
.sumber
image.ext4
. Alasan saya menggunakan seluruh disk untuk satu sistem file adalah bahwa, saya ingin me-mount volume langsung di OS host, tanpa offset partisi yang rumit seperti-o loop,offset=1048576
.--recheck
, itu akan memperbarui tabel petanya dengan drive tanpa partisi itu, lalu mengeluh ketika ia mencoba tabel partisi yang tidak ada. Jika saya menghapus jalur drive ini dari file peta, peringatan itu hilang.Ini tidak wajib bahwa GRUB harus ditulis ke MBR. Anda dapat menginstalnya di sektor boot partisi dan membiarkan boot loader lain dari MBR memuatnya, seperti Windows 7 loader.
http://www.linuxselfhelp.com/gnu/grub/html_chapter/grub_3.html
sumber
Hampir semuanya mengharapkan tabel partisi. Saya pikir Anda harus menginstal ulang, dan ikuti panduan yang disarankan untuk memiliki setidaknya partisi / boot, swap, dan / root. Di mana swap Anda?
sumber
/boot
tidak lagi direkomendasikan pada perangkat keras modern (itu adalah kludge untuk memotong batasan BIOS pada ukuran disk dan kurangnya dukungan untuk mode disk canggih seperti LVM di Grub 1)./boot
? Jika demikian, mengapa lebih baik pergi/boot
di partisi yang sama/
?/boot
dengan Lilo atau Grub 2, tetapi tidak dengan Grub 1. Sebuah terpisah/boot
memiliki biaya administrasi (Anda perlu membuat satu partisi lagi, dan Anda perlu berhati-hati untuk tidak berbaur/boot
dengan/
), jadi Anda hanya akan menggunakan satu jika ada alasan (seperti bootloader Anda tidak memahami LVM).