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
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

