Использование GRUB для загрузки FreeBSD
Материал из Xgu.ru
- Короткий URL: freebsd/grub
Источник: http://lists.freebsd.org/pipermail/freebsd-hackers/2004-May/006944.html
=================================================== ######## How to Use Grub Bootloader on FreeBSD ######## ######## <Jiafu He>jiafu_he at yahoo.com, 05/18/2004 ######## This mini-howto is written as a dummy introduction on how to get, install, setup and use GNU/Grub bootloader on FreeBSD. If you need more detailed information, go read the Grub mannual at http://www.gnu.org/manual/grub/html_mono/grub.html Note: UFS2 is supported starting from the verion Grub-0.94_3. 1. Obtaining Grub files: To use Grub on FreeBSD UFS2, you need files "stage1", "stage2" and "ufs2_stage1_5". To handle other types of file systems, you need other stage 1.5 files like "ffs_stage1_5", "e2fs_stage1_5", or "fat_stage1_5" etc. You can obtain the files from either i. the GNU/Grub website http://www.gnu.org/software/grub/ ii. or FreeBSD Grub port. Grub-0.94_3 requires freebsd 5.2.1 or current. To install Grub-0.94_3, do the following: ------------------------------- #cd /usr/ports/sysutils/grub /* go to the grub freebsd port dir */ #make install clean /* install it */ ------------------------------- If all goes well, the Grub files are generated in directory /usr/local/share/grub/i386-freebsd/ and the executable "grub" is installed under /usr/local/sbin/ 2. Installing Grub on UFS2 partition: i. Create /boot/grub/ directory (or alternatively /grub/) on your HD and copy files in it: ----------------------------------------------- #cd /boot;mkdir grub #cp -Rf /usr/local/share/grub/i386-freebsd grub ----------------------------------------------- Make sure at least files "stage1" and "stage2" are under /boot/grub/. To be complete, the pertinent stage 1.5 file (here "ufs2_stage1_5") is also needed. ii. Create Grub boot floppy. You can either a. using "dd" (recommended): ----------------------------------------------- #dd if=stage1 of=/dev/fd0 bs=512 count=1 /* stage1 to block #1 */ 1+0 records in 1+0 records out #dd if=stage2 of=/dev/fd0 bs=512 seek=1 /* stage2 starting from block #2 */ 153+1 records in 153+1 records out # ----------------------------------------------- b. or alternatively using Grub "setup" under FreeBSD: ----------------------------------------------- #fdformat -f1440 /dev/fd0 /* low level format the floppy if you want to */ #newfs -LGrubBoot -O1 /dev/fd0 /* format into UFS1 */ #mount /dev/fd0 /mnt #mkdir /mnt/boot #cp -Rf /usr/local/share/grub/i386-freebsd /mnt/boot/grub #touch /mnt/boot/grub/menu.lst /* touch and edit menu.lst, see step 3 */ #umount /mnt #grub grub> device (fd0) /dev/fd0 /* set the device map */ grub> root (fd0) Filesystem type is ffs, using whole disk grub> find /boot/grub/stage1 /* verify whether the required files are there */ (fd0) grub> setup (fd0) /* setup the floppy */ Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/ffs_stage1_5" exists... yes Running "embed /boot/grub/ffs_stage1_5 (fd0)"... failed (this is not fatal) Running "embed /boot/grub/ffs_stage1_5 (fd0)"... failed (this is not fatal) Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p /boot/grub/menu.lst " ... succeeded Done. ----------------------------------------------- 3. Touch and edit "/boot/grub/menu.lst". An example is given below, assuming that - partition 0: Windows XP; - partition 1: FreeBSD; - partition 2: Linux. ------------------------------------------- default saved # boot the last selection. Work together with savedefault below timeout 10 # timeout 10 seconds password --md5 $1$rEjBN0$0J06NigS.2ImTaipPOh0w/ # md5 passwd encryption: "testgrub" # Boot Windows XP. You have to chainloading. title Windows XP Professional # display boot title on the Grub prompt root (hd0,0) # set the root device or partition makeactive # set the partition active so that next time it can be automatically # booted after timing-out chainloader +1 # Here we have to chainload savedefault # save this selection as the default for next bootstrap # Boot FreeBSD title FreeBSD 5.1_p16 root (hd0,1,a) kernel /boot/loader # specify the kernel or kernel loader makeactive savedefault # Boot Redhat Linux title Redhat Linux root (hd0,2) kernel /boot/vmlinuz-2.4.18-14smp ro root=LABEL=/ hdc=ide-scsi initrd /boot/initrd-2.4.18-14smp.img makeactive savedefault # Install Grub on Slice 1 (the FreeBSD partition) title Install Grub on FreeBSD (Slice 1) root (hd0,1,a) setup (hd0) savedefault --------------------------------------------- 4. Install Grub to MBR on your hard disk (using grub native way): i. Boot the machine using the floppy just created; ii. on the Grub menu screen, you can either make use of the last menu entry (see menu.lst above) or do the following: ----------------------------------- : (Grub menu screen) : p # password is needed since the password line is in config file. password: testgrub c # enter command prompt Then you enter the command prompt: grub> find /boot/grub/stage1 /* find which partition has Grub files */ (hd0,1,a) /* it will display the found parition */ grub> root (hd0,1,a) Filesystem type is ufs2, partition type 0xa5 grub> setup (hd0) /* install Grub in MBR */ Checking if "/boot/grub/stage1" exists ... yes Checking if "/boot/grub/stage2" exists ... yes Checking if "/boot/grub/ufs2_stage1_5" exists ... yes Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... 16 sectors embeded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,1,a)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded ------------------------------------ 5. Finally how to generate md5-encrypted password: Enter any Grub command prompt: grub> md5crypt /* call the md5 password encryption utility */ password: yourDesiredPassword /* passwd are replaced by same number of "*" */ EncryptedPassword /* encrypted password is returned here, put it in config file */ That is pretty much it. Enjoy! ########### End of MiniHowto: Grub on FreeBSD #############
Создание каталога grub:
mkdir /boot/grub/
Копирование файлов:
cp -Rpv /usr/local/share/grub/i386-freebsd/* /boot/grub/
Необходимо создать файл device.map:
cat /boot/grub/device.map (hd0) /dev/ad0
Так же необходимо создать конфигурационный файл загрузчика:
cat /boot/grub/menu.lst default=saved timeout=10 title FreeBSD 7.0-CURRENT-200710 root(hd1,0,a) kernel /boot/loader makeactive savedefault
Перед началом установки загрузчика в MBR, необходимо установить переменную:
sysctl kern.geom.debugflags=16
Непосредственная установка:
# grub-install --no-floppy '(hd0)' Installation finished. No error reported. This is the contents of the device map /boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (hd0) /dev/ad0
Теперь перезагружаемся и проверяем:
reboot
Для страховки можно сохранить mbr на внешний накопитель:
dd if=/dev/ad0 of=/mnt/my_mbr.img bs=512 count=1 umount /mnt
- Загрузка ядра Freebsd через grub
Сначала было
Потом cp /boot/kernel/kernel /kernel_f и:
И потом "висим" :((
- Дополнительная информация к разделу:
ОС FreeBSD | |||||
---|---|---|---|---|---|
Печать | CUPS • IPP • LPR • LPD | ||||
Сеть | ipfw • NAT • mpd5 • squid • netgraph | ||||
| |||||
|