Blog

Blog

PHODAL

疯狂的启动方式——Linux、Windows、Mac OS的那些安装经历

话说,东汉末年,群雄并起,天下纷争。于是乎,产生了各种各样的引导方式。

linux下的引导方式就比较多了,从早期的lilo、grub到grub2、burg等等,以及Livecd的isolinux,及习惯了的syslinux。mac os x(x86),可以有darwin、chameleon等等。win上面的话就是bootmgr及ntldr了。

先从win上的引导方式说起,win上就是群雄逐鹿的地方了,当然这只是表面的,实际情况是Microsoft占领了主要市场从而使得各个系统的引导方式不得不寄生与win,因而win上几乎可以引导多数的操作系统。win的黑白引导管理除了难看还是难看,bootmgr的话,就是多数操作系统寄生之地了。首先先从古老的grub说起,从xp时代开始装GNU/Linux系统说起,早期的GNU/Linux就是从GRLDR引导开始的。反正我记忆里是那样的,DOS时代我就不是很了解了。虽然是那个时代走过来的人,但是印象不是很深。DOS我记得的命令基本上没有了,软件倒是有几个——LOGO、UCDOS。小学嘛,学的东西就只有这些了,原归正转。说说早期用GRLDR引导GNU/Linux的经历了。

依托于魏国的刘备军

因为之前对这个不是很了解,有点片面吧。而且初学的时候,装的系统是GHOST版的,是那种自带有GRLDR和menu.lst的版本的。

于是我们先要改的就是boot.ini文件了,XP上可以依托的地方了。

 

  1. [boot loader]  
  2. timeout=1  
  3. default=C:\grldr  
  4. [operating systems]  
  5. C:\grldr=Ubuntu 10.04  
  6. multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP " /noexecute=optin /fastdetect  

早期装的是红旗Linux,所以就……。因为那时间UBUNTU好像中文支持还不算很好,不过红旗感觉算是还行。至少在虚拟机安装是如此的,也实践起来差不多是一样的。然后再修改一下menu.lst就差不多了。解压到一个目录应该就差不多了,印象不是很深了。反正,后来有了钱就买了个U盘。所以,对于这个方法就基本上没再经历过了。

 

 

  1. title Ubuntu  
  2. kernel(hd0,0)/vmlinuz  
  3. initrd(hd0,0)/initrd.img  

这个差不多是这样没错的。至于menu.lst再回XP上就是这样的

 

 

  1. title [06] 启动Windows 2000/XP/2003  
  2. find --set-root /ntldr  
  3. chainloader /ntldr  
  4. title [07] 启动Windows Vista/2008/Win7  
  5. find --set-root /bootmgr  
  6. chainloader /bootmgr  

这个是从我的U盘上截取下来的片断,也就是返回引导的方法,WIN7上也是一样的。

 

然后,随后就是用光盘安装Ubuntu了,早期的时候Ubuntu还会从国内寄过来光盘,因为我还不是里面的开发者。然后送了几次,也收了几次光盘,反正是免费的嘛。不过,感觉就是爽多了。Ubuntu Linux用的是isolinux就那个时候吧,不过光盘安装就是比较简单,不过,已经没那个功夫玩那个了。反正,蜀国也就这点能耐,有着很多的技术,但是打不赢天下的。不过,那个是用于光盘的,至于U盘的话,用的是syslinux,我很满意的一种方法,很环保,很安全。因为习惯用Puppy Linux了,所以也就没有领悟上syslinux是怎么安装的,不过总的来说是ldlinux.sys+syslinux.cfg。

syslinux算是比较自由和开放的,可以使用PNG格式的图片,这个比grub2dos好多了,

早期的话,我记得这个就相对比较麻烦了,得使用16位的图片好像,显示的质量相对是相当的糟糕。

 

  1. splashimage=(hd0,*)/grub/mm.xpm.gz  

 

后期的话grub可以怎么做。

 

  1. gfxmenu /BOOT/message  

不过感觉没有多大区别,不如syslinux爽。

  1. MENU BACKGROUND /boot/slax.png  

多干净多利落啊。

 

一个syslinux的示例:

  1. PROMPT 0  
  2. TIMEOUT 90  
  3. DEFAULT /boot/vesamenu.c32  
  4. MENU BACKGROUND /boot/slax.png  
  5.   
  6. MENU TITLE   
  7. MENU WIDTH 22  
  8. MENU MARGIN 1  
  9. MENU ROWS 20  
  10. MENU HELPMSGROW 23  
  11. MENU TIMEOUTROW 24  
  12. MENU TABMSGROW 24  
  13. MENU CMDLINEROW 1  
  14. MENU HSHIFT 18  
  15. MENU VSHIFT 2  
  16. MENU AUTOBOOT  
  17.    
  18. MENU color border           10;10      #00000000 #00000000 none  
  19. MENU color title            1;36;44    #FFFFFFFF #00000000 none  
  20. MENU color sel              30;37      #FF00FF00 #00000000 none  
  21. MENU color unsel            37;44      #FFFFFFFF #00000000 none  
  22. MENU color help             37;40      #FFFFFFFF #00000000 none  
  23. MENU color cmdline          37;40      #FFFF0000 #00000000 none  
  24. MENU color msg07            37;40      #FFFFFF00 #00000000 none  
  25. MENU color timeout          37;40      #FFFF0000 #00000000 none  
  26. MENU color timeout_msg      37;40      #FFFFFF00 #00000000 none    
  27. MENU color hotkey           1;37;44    #ffffff00 #00000000 none  
  28. MENU color hotsel           1;7;37;40  #FF00FF00 #00000000 none  
  29.   
  30.   
  31. MENU LABEL [^P] Puppy Linux  
  32. MENU DEFAULT  
  33. kernel /puppy/VMLINUZ  
  34. initrd /puppy/INITRD.LZ  
  35.   
  36. MENU LABEL [^G] GRUB  
  37. kernel /BOOT/GRLDR.BIN  

因为是来自于slax的所以,基本上也就没改多少了。第一个是启动puppy Linux的,按P可以直接选择这个,G也一样是选择GRLDR的多干净利落。也就是syslinux令人愉快的地方了。而且同grub一样可以设置下一个目录。

 

 

  1. LABEL Phodal  
  2. MENU LABEL [^p] Phodal  
  3. config /BOOT/phodal.CFG  

img文件的使用方法:

 

 

  1. LABEL ghost  
  2. MENU LABEL [^1] Ghost  
  3. kernel /BOOT/SYSLINUX/MEMDISK  
  4. append initrd=/BOOT/IMGS/GHOST.IMG  

这也是我后来觉得很爽的syslinux了,不过这个还是没有比得上后来的 burg.

 

让我们看看burg的启动示例。

 

  1. menuentry " Linux Mint 12"  --class linuxmint {  
  2.         insmod ntfs  
  3.     search --set -f /linuxmint-12-gnome-dvd-32bit.iso  
  4.         loopback loop ($root)/linuxmint-12-gnome-dvd-32bit.iso  
  5.         linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/linuxmint-12-gnome-dvd-32bit.iso locale=zh_CN.UTF-8 noprompt noeject splash  
  6.         initrd (loop)/casper/initrd.lz  
  7. }  

不过这个是比较麻烦了啦,没有那个syslinux来得简单和利落。

  1. menuentry "Windows" --class windows {  
  2.   if search -s -f /bootmgr ; then  
  3.     ntldr /bootmgr  
  4.   else  
  5.     search -s -f /ntldr  
  6.     ntldr /ntldr  
  7.   fi  
  8. }  

这是来自选windows的,不过,整体上burg.cfg算是比较难配置的,不过要是使用linux习惯了也行了。

 

 

  1. set theme_name=ubuntu  
  2. set gfxmode=800x600  
  3. if [ -s $prefix/burgenv ]; then  
  4.   load_env  
  5. fi  
  6. set default="0"  
  7. if [ ${prev_saved_entry} ]; then  
  8.   set saved_entry=${prev_saved_entry}  
  9.   save_env saved_entry  
  10.   set prev_saved_entry=  
  11.   save_env prev_saved_entry  
  12.   set boot_once=true  
  13. fi  
  14.   
  15. function savedefault {  
  16.   if [ -z ${boot_once} ]; then  
  17.     saved_entry=${chosen}  
  18.     save_env saved_entry  
  19.   fi  
  20. }  
  21. function select_menu {  
  22.   if menu_popup -t template_popup theme_menu ; then  
  23.     free_config template_popup template_subitem menu class screen  
  24.     load_config ${prefix}/themes/${theme_name}/theme ${prefix}/themes/custom/theme_${theme_name}  
  25.     save_env theme_name  
  26.     menu_refresh  
  27.   fi  
  28. }  
  29. function toggle_fold {  
  30.   if test -z $theme_fold ; then  
  31.     set theme_fold=1  
  32.   else  
  33.     set theme_fold=  
  34.   fi  
  35.   save_env theme_fold  
  36.   menu_refresh  
  37. }  
  38. function select_resolution {  
  39.   if menu_popup -t template_popup resolution_menu ; then  
  40.     menu_reload_mode  
  41.     save_env gfxmode  
  42.   fi  
  43. }  


不过加载模块什么的也比较自由了,而且可以启动吴国了,所以呢。Mac很犀利,不过,好像没有配置文件的,因为装的是黑苹果,所以原先的那个什么什么也就用不了。可是呢,是用变色龙安装到U盘上的。就没有解决这个问题了。

 

 

 


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签