Super Grub Disk Main Webpage. Página principal de Super Grub Disk.

Support Free Software. Donate to Super Grub Disk. Apoya al Software Libre. Dona a Super Grub Disk.

You are visiting Super Grub Disk wiki. Learn the basic features of Super Grub Disk and finally find out if Super Grub Disk has all the features you need. Most of these webpages suppose that you have a Super Grub Disk and that you know how to boot SGD. If you have a boot problem and you are lost do not hesitate to visit Boot problems page. After that you can visit the Support Rules page where you can find the best way of asking questions at the SGD forum and the SGD mailing list among other resources.


SGDDevCamporells

From Super Grub Disk Wiki

Jump to: navigation, search

Contents

How to build grub2

svn co http://svn.savannah.gnu.org/svn/grub/trunk/grub2

Change directory to grub2

cd grub2
sudo apt-get install ruby bison autotools-dev automake liblzo2-2 liblzo2-dev libc6-dev
sudo apt-get install build-essential
./autogen.sh
./configure && make

Install grub2 on your system

This command does not modify your MBR so you do not have to be afraid to run it.

sudo make install

Create a basic grub2 cdrom

grub-mkrescue ../../grub2_cdrom_thanks_to_grub_mkrescue.iso

Boot Linux Grub2 Manual commands

set sgd_vmlinuz_path=/vmlinuz
set sgd_initrd_path=/initrd.img
search --set=sgd_linux_kernel -f $sgd_vmlinuz_path
search --set=sgd_linux_initrd -f $sgd_initrd_path
probe -u ($sgd_linux_kernel) --set=sgd_root_uuid
set root=$sgd_linux_kernel
linux ($sgd_linux_kernel)$sgd_vmlinuz_path root=UUID=$sgd_root_uuid
initrd ($sgd_linux_initrd)$sgd_initrd_path
boot

Create an advanced grub2 cdrom

Create raiz_disco_grub2_sgd_test1 folder

mkdir raiz_disco_grub2_sgd_test1 folder

Create a boot/grub/grub.cfg file inside raiz_disco_grub2_sgd_test1folder with the following content:


# Timeout for menu
set timeout=10

# Set default boot entry as Entry 0
set default=0

# Entry 0 - Load first Kernel and Initrd (initrd support)
menuentry "First Kernel and Initrd" {
 set sgd_vmlinuz_path=/vmlinuz
 set sgd_initrd_path=/initrd.img
 search --set=sgd_linux_kernel -f $sgd_vmlinuz_path
 search --set=sgd_linux_initrd -f $sgd_initrd_path
 probe -u ($sgd_linux_kernel) --set=sgd_root_uuid
 set root=$sgd_linux_kernel
 linux ($sgd_linux_kernel)$sgd_vmlinuz_path root=UUID=$sgd_root_uuid
 initrd ($sgd_linux_initrd)$sgd_initrd_path
 boot
}

Finally you create:

grub-mkrescue --overlay=./raiz_disco_grub2_sgd_test1/ ./grub2_cdrom_thanks_to_grub_mkrescue.iso

How to modify grub-rescue-pc package

grub-rescue-pc just generates a cdrom and a floppy image. It is more or less what Super Grub2 Disk it is. So here we will learn how to modify grub-rescue-pc package from debian and upstream source code. After building the package we will set up a local repository and install it.

Debian Grub2 Source Code grab

svn export svn://svn.savannah.gnu.org/grub/trunk/grub2 grub2
cd grub2
svn export svn://svn.debian.org/svn/pkg-grub/grub2/trunk/debian
svn cat svn://svn.debian.org/pkg-grub/grub/trunk/debian/update-grub > debian/legacy/update-grub
svn export svn://svn.sv.nongnu.org/grub-extras/trunk debian/grub-extras

Debian Grub2 Super Grub Disk patch

SGD Disk patch for Grub2 can be found here at berlios download: https://developer.berlios.de/project/filelist.php?group_id=10921. (Check SG2D Source Code section)


In order to apply it you need to be at Debian source code package root folder and run:

patch -p1 < ../path/to/th /grub2_package_super_grub_disk.patch

This patch has every command that grub2 needs to be a super disk.

Debian Grub2 Build

You change directory to the Debian package source code root folder and you just run:

debuild -b

This command will create for you in ../ (upper folder) some files among binary packages, source packages, a .changes file and .dsc file (maybe it will not create this last one).

(Depending on your setup you might receive errors because of non-installed packages. Just install them as they are requested.)

Debian Grub2 Repository setup

Although you can install the grub-rescue-pc by hand thanks to

dpkg -i /path/to/package

I recommend you to setup a local repository so that you can install the packages with the Debian package system advantages.

So in order to setup a repository we are going to need the reprepro package.

apt-get install reprepro

We create a new folder.

mkdir /home/user/supergrub2_repository/

We enter it.

cd /home/user/supergrub2_repository/

We create conf folder

mkdir conf

We edit distributions file instead conf folder

gedit conf/distributions

This is the recommended distributions content (Althought I am not an expert so this might be improved):

Origin: Adrian Gibanel Lopez
Label: sid_label
Suite: unstable
Codename: sid
Architectures: i386 source
Components: main
Description: Svn updated grub2 packages and Super Grub2 Disk.

Debian Grub2 Repository import

We change directory to repository root

cd /home/user/supergrub2_repository/

We import the new package to the repository.

reprepro -Vb . include sid /home/adrian/gnu/sgd/sgd_grub2/grub2_package_updated_to_svn/nuevo/sgd_improved/grub2_1.96+20090725-1.1_i386.changes

(You have to use your own .changes file at Debian package source code root folder parent folder).

sources.list update

You should edit /etc/apt/sources.list file as root.

su
<Enter your password>
gedit /etc/apt/sources.list

Add this line to the top of the file:

deb file:/home/user/supergrub2_repository/ sid main

Save the file and exit from gedit.

Package System update

Run as root:

apt-get update

(If you have done everything ok no error should be reported).

grub-rescue-pc installation

Now you just have to run as root:

apt-get install grub-rescue-pc

Final grub-rescue-pc iso test

Now you can find the resultant files at: /usr/lib/grub-rescue/
grub-rescue-cdrom.iso
grub-rescue-floppy.img

So that you can maybe try to boot the cdrom image in qemu:

qemu -boot d -cdrom /usr/lib/grub-rescue/grub-rescue-cdrom.iso -hda /path/to/harddisk.img

References


Personal tools