用GRUB2来实现——坎特伯雷项目 The Canterbury Project
用GRUB2来实现——坎特伯雷项目 The Canterbury Project
01.坎特伯雷项目 The Canterbury Project
2011年04月01日愚人节快乐!
虽然所有 Linux 发行版从过去到未来的合作依然会继续,以下的通告自然是假的啦! ;)
我们很高兴的宣布坎特伯雷 Canterbury 发行版的诞生。坎特伯雷集合了社群里各个不同发行版的力量,其中包括 Debian、Gentoo、Grml、openSUSE 以及ArchLinux,以产生一股非常聚合的力量,这力量足以抵抗其他的私有操作系统。而且展示出自由软件社群实际上是能够为了共同目标而共同合作,而并非创造更多的差异。
坎特伯雷的技术性将有如 Arch 般简单,系统有如 Debian 般稳定,可塑性有如 Gentoo 般高,拥有一个像 Grml 的扎实 Live 架构,并有如 openSUSE 般开明。
02.GRUB简单介绍。
GNU GRUB 是一个 支持多个启动 的启动加载器, GRUB是 宏大的,统一的,启动加载器的缩写,最初的设计和应用者是ErichStefan Boleyn。
总而言之,一个 启动加载器 是计算机启动的第一个软件,负责加载和更换(转换)控制操作系统的 内核 软件,内核kernel,可以依次变换,初始化(启动),正在休息的操作系统。
GRUB 开发测试版
GRUB 2 已经开始更换正如我们了解的GRUB ( 比如 0.9x),可以说,成为GRUB 遗留问题。GRUB正在不断的增强,但是现在的的发行版本,对于正常的操作来说还是不那么稳定,GRUB遗留问题 在未来会完善。区别GRUB 遗留问题和GRUB,详见:Grub Legacy 。
http://www.gnu.org/software/grub/
http://www.gnu.org/software/grub/manual/
03.我的体验
也许我的这个体验这算不了什么,但是引发了我一个深思,诸如N个不同的版本的LINUX安装在一台电脑上,且可以任意启动,我想GRUB2在这个上边已经做了很大的进步,自动捕捉其他的操作系统和启动内核,自动生成/boot/grub/grub.cfg文件,这个让我很吃惊,传统的GRUB是做不到这一点的。
我安装了 fedora 13, debian wheezy, fedora16, opensuse, centos, gentoo, lfs-7.2, (grml & arch linux为光盘启动,没有安装),又看了The Linux Bootdisk HOWTO,配置任意最小的盘区启动,感觉有了grub 2,这些都可以方便的实现了。
但是Canterbury坎特伯雷, 的意思是在一款LINUX上实现这些功能,而GRUB2 在一个计算机上实现了这些功能,甚者超越了Canterbury坎特伯雷计划的本身,未来,如果GRUB2可以延伸到GRUB3 或者 GRUB4, 可以在GNOME 的一个桌面,就像从一个桌面轻松的更换到下个桌面,而每一个桌面就是一个不同的LINUX操作系统,而不是需要从新启动,用boot loader来调换不同的操作系统而已,那样,boot loader 的意义也就是首先启动哪一个桌面的意义了!
在一个320GB的硬盘上,分区分了11个区,还有几个没有用到了,
fdisk /dev/sda
以下是fdisk 分区命令和选择,
第1个分区,基础分区
new
primary
1
0.7G
第2个分区,基础分区
new
primary
2
2G
第3个分区,基础分区
new
primary
3
27G
第4个分区,扩展分区(选择所有的空间,/dev/sda4 不可以挂载,表示所有的可以扩展的分区的大小)
new
extended
4
290G
第5个分区,扩展分区的一部分,可以直接挂载,(不再选择p 基础 或者 e 扩展分区)
new
5
20G
第6个分区,扩展分区的一部分,可以直接挂载,
new
6
20G
...
等等
然后安装不同的操作系统, fedora 16, opensuse 安装后是grub2, 自动识别其他系统,而debian wheezy的GRUB2 则需要动手配置了。
这样,就可以开发产品的时候,备用的安装多个操作系统,可以取长补短, 开发系统配置完成后,可以在GRUB2隐藏其他的操作系统,而在故障调试,或者备份其他数据等其他特殊应用的时候,可以多一个选择的空间。
GRUB 2, GRUB N 仍就任重而道远!!!
menuentry 'openSUSE' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-09612736-befa-4311-847f-2d77b640fb1c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2' 09612736-befa-4311-847f-2d77b640fb1c
else
search --no-floppy --fs-uuid --set=root 09612736-befa-4311-847f-2d77b640fb1c
fi
echo '载入 Linux 3.4.6-2.10-desktop ...'
linux /boot/vmlinuz-3.4.6-2.10-desktop root=UUID=09612736-befa-4311-847f-2d77b640fb1c video=1680x1050 resume=/dev/disk/by-id/ata-ST3320613AS_9SZ0QFWB-part3 splash=silent quiet showopts
echo '载入初始化内存盘...'
initrd /boot/initrd-3.4.6-2.10-desktop
}
submenu 'Advanced options for openSUSE' $menuentry_id_option 'gnulinux-advanced-09612736-befa-4311-847f-2d77b640fb1c' {
menuentry 'openSUSE,Linux 3.4.6-2.10-desktop' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.4.6-2.10-desktop-advanced-09612736-befa-4311-847f-2d77b640fb1c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2' 09612736-befa-4311-847f-2d77b640fb1c
else
search --no-floppy --fs-uuid --set=root 09612736-befa-4311-847f-2d77b640fb1c
fi
echo '载入 Linux 3.4.6-2.10-desktop ...'
linux /boot/vmlinuz-3.4.6-2.10-desktop root=UUID=09612736-befa-4311-847f-2d77b640fb1c video=1680x1050 resume=/dev/disk/by-id/ata-ST3320613AS_9SZ0QFWB-part3 splash=silent quiet showopts
echo '载入初始化内存盘...'
initrd /boot/initrd-3.4.6-2.10-desktop
}
menuentry 'openSUSE,Linux 3.4.6-2.10-desktop (恢复模式)' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.4.6-2.10-desktop-recovery-09612736-befa-4311-847f-2d77b640fb1c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2' 09612736-befa-4311-847f-2d77b640fb1c
else
search --no-floppy --fs-uuid --set=root 09612736-befa-4311-847f-2d77b640fb1c
fi
echo '载入 Linux 3.4.6-2.10-desktop ...'
linux /boot/vmlinuz-3.4.6-2.10-desktop root=UUID=09612736-befa-4311-847f-2d77b640fb1c showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe
echo '载入初始化内存盘...'
initrd /boot/initrd-3.4.6-2.10-desktop
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Debian GNU/Linux (wheezy/sid)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-c283cb81-6b7f-4a4b-997b-93322b08848e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5' c283cb81-6b7f-4a4b-997b-93322b08848e
else
search --no-floppy --fs-uuid --set=root c283cb81-6b7f-4a4b-997b-93322b08848e
fi
linux /boot/vmlinuz-3.2.0-3-686-pae root=UUID=c283cb81-6b7f-4a4b-997b-93322b08848e ro quiet
initrd /boot/initrd.img-3.2.0-3-686-pae
}
submenu 'Advanced options for Debian GNU/Linux (wheezy/sid)' $menuentry_id_option 'osprober-gnulinux-advanced-c283cb81-6b7f-4a4b-997b-93322b08848e' {
menuentry 'Debian GNU/Linux, with Linux 3.2.0-3-686-pae (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.2.0-3-686-pae--c283cb81-6b7f-4a4b-997b-93322b08848e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5' c283cb81-6b7f-4a4b-997b-93322b08848e
else
search --no-floppy --fs-uuid --set=root c283cb81-6b7f-4a4b-997b-93322b08848e
fi
linux /boot/vmlinuz-3.2.0-3-686-pae root=UUID=c283cb81-6b7f-4a4b-997b-93322b08848e ro quiet
initrd /boot/initrd.img-3.2.0-3-686-pae
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-3-686-pae (recovery mode) (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.2.0-3-686-pae-root=UUID=c283cb81-6b7f-4a4b-997b-93322b08848e ro single-c283cb81-6b7f-4a4b-997b-93322b08848e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5' c283cb81-6b7f-4a4b-997b-93322b08848e
else
search --no-floppy --fs-uuid --set=root c283cb81-6b7f-4a4b-997b-93322b08848e
fi
linux /boot/vmlinuz-3.2.0-3-686-pae root=UUID=c283cb81-6b7f-4a4b-997b-93322b08848e ro single
initrd /boot/initrd.img-3.2.0-3-686-pae
}
menuentry 'fedora13 (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-2.6.33.3-85.fc13.i686.PAE--c283cb81-6b7f-4a4b-997b-93322b08848e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5' c283cb81-6b7f-4a4b-997b-93322b08848e
else
search --no-floppy --fs-uuid --set=root c283cb81-6b7f-4a4b-997b-93322b08848e
fi
linux /boot/vmlinuz-2.6.33.3-85.fc13.i686.PAE root=UUID=848f5e8b-119a-4b43-921d-348fb8ab16a2 ro quiet
initrd /boot/initramfs-2.6.33.3-85.fc13.i686.PAE.img
}
menuentry 'fedora13 -2 (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-2.6.33.3-85.fc13.i686.PAE--c283cb81-6b7f-4a4b-997b-93322b08848e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5' c283cb81-6b7f-4a4b-997b-93322b08848e
else
search --no-floppy --fs-uuid --set=root c283cb81-6b7f-4a4b-997b-93322b08848e
fi
linux /boot/vmlinuz-2.6.33.3-85.fc13.i686.PAE root=UUID=848f5e8b-119a-4b43-921d-348fb8ab16a2
initrd /boot/initramfs-2.6.33.3-85.fc13.i686.PAE.img
}
menuentry 'fedora13 -3 (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-2.6.33.3-85.fc13.i686.PAE--c283cb81-6b7f-4a4b-997b-93322b08848e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5' c283cb81-6b7f-4a4b-997b-93322b08848e
else
search --no-floppy --fs-uuid --set=root c283cb81-6b7f-4a4b-997b-93322b08848e
fi
linux /boot/vmlinuz-2.6.33.3-85.fc13.i686.PAE root=UUID=848f5e8b-119a-4b43-921d-348fb8ab16a2
initrd /boot/initrd.img-3.2.0-3-686-pae
}
}
menuentry 'Fedora release 16 (Verne)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-1cad4862-b546-4111-9597-ed626bf18b8d' {
insmod part_msdos
insmod ext2
set root='hd0,msdos7'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7 --hint='hd0,msdos7' 1cad4862-b546-4111-9597-ed626bf18b8d
else
search --no-floppy --fs-uuid --set=root 1cad4862-b546-4111-9597-ed626bf18b8d
fi
linux /boot/vmlinuz-3.1.0-7.fc16.i686.PAE root=/dev/sda6
initrd /boot/initramfs-3.1.0-7.fc16.i686.PAE.img
}
submenu 'Advanced options for Fedora release 16 (Verne)' $menuentry_id_option 'osprober-gnulinux-advanced-1cad4862-b546-4111-9597-ed626bf18b8d' {
menuentry 'Fedora release 16 (Verne) (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-3.1.0-7.fc16.i686.PAE--1cad4862-b546-4111-9597-ed626bf18b8d' {
insmod part_msdos
insmod ext2
set root='hd0,msdos7'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7 --hint='hd0,msdos7' 1cad4862-b546-4111-9597-ed626bf18b8d
else
search --no-floppy --fs-uuid --set=root 1cad4862-b546-4111-9597-ed626bf18b8d
fi
linux /boot/vmlinuz-3.1.0-7.fc16.i686.PAE root=/dev/sda6
initrd /boot/initramfs-3.1.0-7.fc16.i686.PAE.img
}
}