返回列表 发帖

如何在一台电脑上安装和引导145个操作系统(yeeyan上看的牛文)

这145个系统是:-
3 Dos
5 Windows
137 Linux
我也在一台 Darwin x86 电脑上安装了大多数的基于PC的BSD和Solaris系统,但是这些系统不喜欢和其他一大堆的系统共存,所以我只有把它们装到另一台电脑上直到我找到一个解决这个技术问题的方法为止。
这个指南只有三个步骤。

第一步 -一个简单的软件方案

一 个操作系统需要住在一个家里面。对我来说那就是一个分区。我使用一块 2×300Gb Pata 硬盘和一块 2×200 Sata 硬盘,并分了152个分区。通常我把一个操作系统放在一个分区里。作为扩展分区的每个硬盘没有自己的存储空间,一个纯数据分区放置我的个人数据,另一个纯数据分区放置公共引导装载器,还有所有Linux需要的一个Swap分区,最后我除去7个分区留下145个分区放置那145个操作系统。

第二步 -一个简单的引导方案
我 把 Grub 装入纯数据分区,在任何一个操作系统被安装之前我就建立了一个引导所有分区的引导菜单。当一个分区塞进系统以后立即就变得可引导了。这个方案绝对的简单,听进来很有技术性,在所有的情况下都完美的可用,但对一些电脑用记来说这看起来很非常规。对那些对Grub知之甚少的人来说,它只不是通常Linux里使用的双系统引导装载器而已。另一个相似功能的东西叫Lilo,在2007年初可能有少于40%Linux发行版使用它。
简而言之,我使用Grub去启动145个之中任何一个我选择使用的系统的引导文件。接下来的工作就交给第二个引导文件了,它会启动它的老大。
第三步 -一个简单的安装方案
它真的很简单。我只是把每一个系统安装到一个单独分区。对于微软系统工作稍为多一点,因为我必须安装一个单独的系统,为了让它总能从 “C”盘启动。然后我把带有系统的硬盘移到最后一个分区,编辑Grub菜单文件让它能重新以“C“盘的状态启动。
我的方案依赖于每一个系统的根分区内有一个引导文件。这在每一个微软系统和其它依赖从主分区启动的操作系统都固有这个引导文件。对于 Linux来说这是一个可任意选择的选项。
硬件使用
我的电脑是用市场上便宜的元件自己装配的。没有什么值得写的。就是一个普通电脑用户认为在5年之后就会落伍的平均装备,我只能负担得起这样。
主板: Asrock 939NF4G-SATA2
CPU: AMD 939 64 +3200
内存: 1025Mb
显卡: 主板集成 NV44 graphics DX9.0 VGA
硬盘:2×300Gb Maxtor 133/Mb/s Pata Diamond Max 10
2×200Gb 150Mb/s Sata-I Maxtor Diamond Maxline III
声卡: SoundBlaster 5.1
网卡: 一般 Realtek 8139 10/100 Entrnet
键盘: Generic PS/2 keyboard
鼠标: Generic PS/2 mouse
必要工具
(1) 一张可引导的Grub软盘或CD。
(2) 一张Linux Live CD. 理想的是有Grub集成在里面那种。
(3) 一张Dos 6 或者更高版本的引导软盘,带fdisk.ext的那种。
(4) 一张Win2k 或 XP 安装CD
项目(1)的引导盘制作(1)和如果使用其它的工具请看我签名上的链接。
[size=+0]分区列表
这是Linux命令“fdisk -l”输出的分区方案细节。
代码:
  1. Warning: omitting partitions after #60.
  2. They will be deleted if you save this partition table.

  3. Disk /dev/hda: 300.0 GB, 300090728448 bytes
  4. 255 heads, 63 sectors/track, 36483 cylinders
  5. Units = cylinders of 16065 * 512 = 8225280 bytes

  6. Device Boot Start End Blocks Id System
  7. /dev/hda1 * 1 122 979933+ 16 Hidden FAT16
  8. /dev/hda2 123 244 979965 16 Hidden FAT16
  9. /dev/hda3 245 366 979965 16 Hidden FAT16
  10. /dev/hda4 367 36483 290109802+ 5 Extended
  11. /dev/hda5 367 609 1951866 82 Linux swap
  12. /dev/hda6 610 1217 4883728+ 83 Linux
  13. /dev/hda7 1218 1825 4883728+ 83 Linux
  14. /dev/hda8 1826 2433 4883728+ 83 Linux
  15. /dev/hda9 2434 3041 4883728+ 83 Linux
  16. /dev/hda10 3042 3649 4883728+ 83 Linux
  17. /dev/hda11 3650 4257 4883728+ 83 Linux
  18. /dev/hda12 4258 4865 4883728+ 83 Linux
  19. /dev/hda13 4866 5473 4883728+ 83 Linux
  20. /dev/hda14 5474 6081 4883728+ 83 Linux
  21. /dev/hda15 6082 6689 4883728+ 83 Linux
  22. /dev/hda16 6690 7297 4883728+ 83 Linux
  23. /dev/hda17 7298 7905 4883728+ 83 Linux
  24. /dev/hda18 7906 8513 4883728+ 83 Linux
  25. /dev/hda19 8514 9121 4883728+ 83 Linux
  26. /dev/hda20 9122 9729 4883728+ 83 Linux
  27. /dev/hda21 9730 10337 4883728+ 83 Linux
  28. /dev/hda22 10338 10945 4883728+ 83 Linux
  29. /dev/hda23 10946 11553 4883728+ 83 Linux
  30. /dev/hda24 11554 12161 4883728+ 83 Linux
  31. /dev/hda25 12162 12769 4883728+ 83 Linux
  32. /dev/hda26 12770 13377 4883728+ 83 Linux
  33. /dev/hda27 13378 13985 4883728+ 83 Linux
  34. /dev/hda28 13986 14593 4883728+ 83 Linux
  35. /dev/hda29 14594 15201 4883728+ 83 Linux
  36. /dev/hda30 15202 15809 4883728+ 83 Linux
  37. /dev/hda31 15810 16417 4883728+ 83 Linux
  38. /dev/hda32 16418 17025 4883728+ 83 Linux
  39. /dev/hda33 17026 17633 4883728+ 83 Linux
  40. /dev/hda34 17634 18241 4883728+ 83 Linux
  41. /dev/hda35 18242 18849 4883728+ 83 Linux
  42. /dev/hda36 18850 19457 4883728+ 83 Linux
  43. /dev/hda37 19458 20065 4883728+ 83 Linux
  44. /dev/hda38 20066 20673 4883728+ 83 Linux
  45. /dev/hda39 20674 21281 4883728+ 83 Linux
  46. /dev/hda40 21282 21889 4883728+ 83 Linux
  47. /dev/hda41 21890 22497 4883728+ 83 Linux
  48. /dev/hda42 22498 23105 4883728+ 83 Linux
  49. /dev/hda43 23106 23713 4883728+ 83 Linux
  50. /dev/hda44 23714 24321 4883728+ 83 Linux
  51. /dev/hda45 24322 24929 4883728+ 83 Linux
  52. /dev/hda46 24930 25537 4883728+ 83 Linux
  53. /dev/hda47 25538 26145 4883728+ 83 Linux
  54. /dev/hda48 26146 26753 4883728+ 83 Linux
  55. /dev/hda49 26754 27361 4883728+ 83 Linux
  56. /dev/hda50 27362 27969 4883728+ 83 Linux
  57. /dev/hda51 27970 28577 4883728+ 83 Linux
  58. /dev/hda52 28578 29185 4883728+ 83 Linux
  59. /dev/hda53 29186 29793 4883728+ 83 Linux
  60. /dev/hda54 29794 30401 4883728+ 83 Linux
  61. /dev/hda55 30402 31009 4883728+ 83 Linux
  62. /dev/hda56 31010 31617 4883728+ 83 Linux
  63. /dev/hda57 31618 32833 9767488+ 83 Linux
  64. /dev/hda58 32834 34049 9767488+ 83 Linux
  65. /dev/hda59 34050 34657 4883728+ 83 Linux
  66. /dev/hda60 34658 35265 4883728+ 83 Linux

  67. Disk /dev/hdc: 300.0 GB, 300090728448 bytes
  68. 255 heads, 63 sectors/track, 36483 cylinders
  69. Units = cylinders of 16065 * 512 = 8225280 bytes

  70. Device Boot Start End Blocks Id System
  71. /dev/hdc1 1 122 979933+ 16 Hidden FAT16
  72. /dev/hdc2 123 730 4883760 1c Hidden W95 FAT32 (LBA)
  73. /dev/hdc3 731 3162 19535040 17 Hidden HPFS/NTFS
  74. /dev/hdc4 3163 36483 267650932+ 5 Extended

  75. /dev/hdc5 3163 3770 4883728+ 83 Linux
  76. /dev/hdc6 3771 4378 4883728+ 83 Linux
  77. /dev/hdc7 4379 4986 4883728+ 83 Linux
  78. /dev/hdc8 4987 5594 4883728+ 83 Linux
  79. /dev/hdc9 5595 6202 4883728+ 83 Linux
  80. /dev/hdc10 6203 6810 4883728+ 83 Linux
  81. /dev/hdc11 6811 7418 4883728+ 83 Linux
  82. /dev/hdc12 7419 8026 4883728+ 83 Linux
  83. /dev/hdc13 8027 8634 4883728+ 83 Linux
  84. /dev/hdc14 8635 9242 4883728+ 83 Linux
  85. /dev/hdc15 9243 9850 4883728+ 83 Linux
  86. /dev/hdc16 9851 10458 4883728+ 83 Linux
  87. /dev/hdc17 10459 11066 4883728+ 83 Linux
  88. /dev/hdc18 11067 11674 4883728+ 83 Linux
  89. /dev/hdc19 11675 12282 4883728+ 83 Linux
  90. /dev/hdc20 12283 12890 4883728+ 83 Linux
  91. /dev/hdc21 12891 13498 4883728+ 83 Linux
  92. /dev/hdc22 13499 14106 4883728+ 83 Linux
  93. /dev/hdc23 14107 14714 4883728+ 83 Linux
  94. /dev/hdc24 14715 15322 4883728+ 83 Linux
  95. /dev/hdc25 15323 15930 4883728+ 83 Linux
  96. /dev/hdc26 15931 16538 4883728+ 83 Linux
  97. /dev/hdc27 16539 17146 4883728+ 83 Linux
  98. /dev/hdc28 17147 17754 4883728+ 83 Linux
  99. /dev/hdc29 17755 18362 4883728+ 83 Linux
  100. /dev/hdc30 18363 18970 4883728+ 83 Linux
  101. /dev/hdc31 18971 19578 4883728+ 83 Linux
  102. /dev/hdc32 19579 20186 4883728+ 83 Linux
  103. /dev/hdc33 20187 20794 4883728+ 83 Linux
  104. /dev/hdc34 20795 21402 4883728+ 83 Linux
  105. /dev/hdc35 21403 22010 4883728+ 83 Linux
  106. /dev/hdc36 22011 22618 4883728+ 83 Linux
  107. /dev/hdc37 22619 23226 4883728+ 83 Linux
  108. /dev/hdc38 23227 23834 4883728+ 83 Linux
  109. /dev/hdc39 23835 24442 4883728+ 83 Linux
  110. /dev/hdc40 24443 25050 4883728+ 83 Linux
  111. /dev/hdc41 25051 25658 4883728+ 83 Linux
  112. /dev/hdc42 25659 26266 4883728+ 83 Linux
  113. /dev/hdc43 26267 26874 4883728+ 83 Linux
  114. /dev/hdc44 26875 27482 4883728+ 83 Linux
  115. /dev/hdc45 27483 28090 4883728+ 83 Linux
  116. /dev/hdc46 28091 28698 4883728+ 83 Linux
  117. /dev/hdc47 28699 29306 4883728+ 83 Linux
  118. /dev/hdc48 29307 29914 4883728+ 83 Linux
  119. /dev/hdc49 29915 30522 4883728+ 83 Linux
  120. /dev/hdc50 30523 31130 4883728+ 83 Linux
  121. /dev/hdc51 31131 31738 4883728+ 83 Linux
  122. /dev/hdc52 31739 32346 4883728+ 83 Linux
  123. /dev/hdc53 32347 32954 4883728+ 83 Linux
  124. /dev/hdc54 32955 33562 4883728+ 83 Linux
  125. /dev/hdc55 33563 34170 4883728+ 83 Linux
  126. /dev/hdc56 34171 34778 4883728+ 83 Linux
  127. /dev/hdc57 34779 35386 4883728+ 83 Linux
  128. /dev/hdc58 * 35387 35994 4883728+ 83 Linux
  129. /dev/hdc59 35995 36483 3927861 83 Linux

  130. Disk /dev/sda: 203.9 GB, 203928109056 bytes
  131. 255 heads, 63 sectors/track, 24792 cylinders
  132. Units = cylinders of 16065 * 512 = 8225280 bytes

  133. Device Boot Start End Blocks Id System
  134. /dev/sda1 * 1 5099 40957686 7 HPFS/NTFS
  135. /dev/sda2 5100 6315 9767520 83 Linux
  136. /dev/sda3 6316 6923 4883760 83 Linux
  137. /dev/sda4 6924 24792 143532742+ 5 Extended
  138. /dev/sda5 6924 7531 4883728+ 83 Linux
  139. /dev/sda6 7532 8139 4883728+ 83 Linux
  140. /dev/sda7 8140 8747 4883728+ 83 Linux
  141. /dev/sda8 8748 9355 4883728+ 83 Linux
  142. /dev/sda9 9356 9963 4883728+ 83 Linux
  143. /dev/sda10 9964 10571 4883728+ 83 Linux
  144. /dev/sda11 10572 11179 4883728+ a9 NetBSD
  145. /dev/sda12 11180 11787 4883728+ 83 Linux
  146. /dev/sda13 * 11788 12395 4883728+ 83 Linux
  147. /dev/sda14 12396 23916 92542401 c W95 FAT32 (LBA)
  148. /dev/sda15 23917 24792 7036438+ 83 Linux

  149. Disk /dev/sdb: 203.9 GB, 203928109056 bytes
  150. 255 heads, 63 sectors/track, 24792 cylinders
  151. Units = cylinders of 16065 * 512 = 8225280 bytes

  152. Device Boot Start End Blocks Id System
  153. /dev/sdb1 * 1 1216 9767488+ 7 HPFS/NTFS
  154. /dev/sdb2 1217 1338 979965 1b Hidden W95 FAT32
  155. /dev/sdb3 1339 1460 979965 83 Linux
  156. /dev/sdb4 1461 24792 187414290 f W95 Ext'd (LBA)
  157. /dev/sdb5 1461 2676 9767488+ 83 Linux
  158. /dev/sdb6 2677 3892 9767488+ 83 Linux
  159. /dev/sdb7 3893 6324 19535008+ 83 Linux
  160. /dev/sdb8 6325 8756 19535008+ 83 Linux
  161. /dev/sdb9 8757 11188 19535008+ 83 Linux
  162. /dev/sdb10 11189 13620 19535008+ 83 Linux
  163. /dev/sdb11 13621 16052 19535008+ 83 Linux
  164. /dev/sdb12 16053 18484 19535008+ 83 Linux
  165. /dev/sdb13 18485 20916 19535008+ 83 Linux
  166. /dev/sdb14 20917 23348 19535008+ 83 Linux
  167. /dev/sdb15 23349 24792 11598898+ 83 Linux
复制代码
我的hda盘有hda61,hda62和hda63分区,但是fdisk程序没有显示出来。
[size=+0]下篇继续
2#
这是引导145个系统的Grub 引导菜单menu.lst

代码:
  1. #Grub menu booting 3 Dos, 5 Windows & 100+ Linux----------------------------
  2. color white/green black/light-gray
  3. title You are now booting from hda3 data-only partition
  4. boot

  5. title DOS 6.22 (FAT16) @ hda1
  6. root (hd0,0)
  7. unhide (hd0,0)
  8. makeactive
  9. chainloader +1

  10. title Win 3.11 @ hda2
  11. root (hd0,1)
  12. hide (hd0,0)
  13. unhide (hd0,1)
  14. makeactive
  15. chainloader +1

  16. #hda3 is the data-only partition hosting Grub to boot all other systems

  17. #hda4 is the extended partition

  18. #hda5 is the common swap partition for all Linux

  19. title Puppy 1.0.6 @ hda6
  20. root (hd0,5)
  21. chainloader +1

  22. title Videolinux 2.0 @ hda7
  23. root (hd0,6)
  24. chainloader +1

  25. title Mandrake 9.2 @ hda8
  26. root (hd0,7)
  27. chainloader +1

  28. title Turbo Linux V7 @ hda9
  29. root (hd0,8)
  30. chainloader +1

  31. title elive 0.3 @ hda10
  32. root (hd0,9)
  33. chainloader +1

  34. title Red Hat 9 @ hda11
  35. root (hd0,10)
  36. chainloader +1

  37. title Lycoris 4 @ hda12
  38. root (hd0,11)
  39. chainloader +1

  40. title Libranet 2.8.1 @ hda13
  41. root (hd0,12)
  42. chainloader +1

  43. title Mandrake 10 @ hda14
  44. root (hd0,13)
  45. chainloader +1

  46. title Debian Woody 3.0 @ hda15
  47. root (hd0,14)
  48. chainloader +1

  49. title Yoper 2.0.0 @ hda16
  50. root (hd0,15)
  51. chainloader +1

  52. title Knoppix 3.6 @ hda17
  53. root (hd0,16)
  54. chainloader +1

  55. title Buffalo 1.5 @ hda18
  56. root (hd0,17)
  57. chainloader +1

  58. title Kanotix 9.2004 @ hda19
  59. root (hd0,18)
  60. chainloader +1

  61. title Kalango 3.2 @ hda20
  62. root (hd0,19)
  63. chainloader +1

  64. title Blag 30001 @ hda21
  65. root (hd0,20)
  66. chainloader +1

  67. title Fedora Core 4 @ hda22
  68. root (hd0,21)
  69. chainloader +1

  70. title Debian Sarge @ hda23
  71. root (hd0,22)
  72. chainloader +1

  73. title Red Flag 4.1 @ hda24
  74. root (hd0,23)
  75. chainloader +1

  76. title Linare Ed 2 @ hda25
  77. root (hd0,24)
  78. chainloader +1

  79. title Tiny Sofa 2.0 @ hda26
  80. root (hd0,25)
  81. chainloader +1

  82. title Slackware 10 @ hda27
  83. root (hd0,26)
  84. chainloader +1

  85. title Xandros 201 @ hda28
  86. root (hd0,27)
  87. chainloader +1

  88. title Vine 3.2 @ hda29
  89. root (hd0,28)
  90. chainloader +1

  91. title Specifix 0.15 @ hda30
  92. root (hd0,29)
  93. chainloader +1

  94. title Ubunto 5.04 @ hda31
  95. root (hd0,30)
  96. chainloader +1

  97. title PCLinuxos 0.91 @ hda32
  98. root (hd0,31)
  99. chainloader +1

  100. title Asian Linux 2.0 @ hda33
  101. root (hd0,32)
  102. chainloader +1

  103. title Ubuntu 6.04 Dapper @ hda34
  104. root (hd0,33)
  105. chainloader +1

  106. title Wolvix 1.0.4 @ hda35
  107. root (hd0,34)
  108. chainloader +1

  109. title Mepis 3.4.2 RC2 @ hda36
  110. root (hd0,35)
  111. chainloader +1

  112. title DreamLinux 1.0 @ hda37
  113. root (hd0,36)
  114. chainloader +1

  115. title Slampp 1.1 @ hda38
  116. root (hd0,37)
  117. chainloader +1

  118. title Slax 5.0.6 @ hda39
  119. root (hd0,38)
  120. chainloader +1

  121. title PCLinuxos 0.92 @ hda40
  122. root (hd0,39)
  123. chainloader +1

  124. title Netsecl 2.0 @ hda41
  125. root (hd0,40)
  126. chainloader +1

  127. title Vector 5.1 @ hda42
  128. root (hd0,41)
  129. chainloader +1

  130. title Suse 10 @ hda43
  131. root (hd0,42)
  132. chainloader +1

  133. title Kororaa 2005 Beta 2 @ hda44
  134. root (hd0,43)
  135. chainloader +1

  136. title smgl 0.95 @ hda45
  137. root (hd0,44)
  138. chainloader +1

  139. title Lunar 1.6 rc3 @ hda46
  140. root (hd0,45)
  141. chainloader +1

  142. title Foresight 0.93 @ hda47
  143. root (hd0,46)
  144. chainloader +1

  145. title SkoleLinux Sarge @ hda48
  146. root (hd0,47)
  147. chainloader +1

  148. title Nepalinux 1.0 @ hda49
  149. root (hd0,48)
  150. chainloader +1

  151. title Klax 3.5 @ hda50
  152. root (hd0,49)
  153. chainloader +1

  154. title SciLinux 2005 @ hda51
  155. root (hd0,50)
  156. chainloader +1

  157. title Progeny 2.0 @ hda52
  158. root (hd0,51)
  159. chainloader +1

  160. title grml 0.6 @ hda53
  161. root (hd0,52)
  162. chainloader +1

  163. title Karamad 1.4.2 @ hda54
  164. root (hd0,53)
  165. chainloader +1

  166. title Whax 3.0 @ hda55
  167. root (hd0,54)
  168. chainloader +1

  169. title Troppix 1.2 @ hda56
  170. root (hd0,55)
  171. chainloader +1

  172. title TopologLinux 6.0 @ hda57
  173. root (hd0,56)
  174. chainloader +1

  175. title Haansoft 2006 WS @ hda58
  176. root (hd0,57)
  177. chainloader +1

  178. title Fedora Core 3 @ hda59
  179. root (hd0,58)
  180. chainloader +1

  181. title ScientificLinux 4.0 @ hda60
  182. root (hd0,59)
  183. chainloader +1

  184. title Slynux 2.0 @ hda61
  185. root (hd0,60)
  186. chainloader +1

  187. title Slax 5.1.8 @ hda62
  188. root (hd0,61)
  189. chainloader +1

  190. title Elive 2 @ hda63
  191. root (hd0,62)
  192. chainloader +1

  193. #Starting point of another hard disk----------------------------

  194. title DOS 7.1 @ hdc1
  195. root (hd1,0)
  196. hide (hd0,0)
  197. hide (hd0,1)
  198. hide (hd0,2)
  199. unhide (hd1,0)
  200. makeactive
  201. map (hd1) (hd0)
  202. map (hd0) (hd1)
  203. chainloader +1

  204. title Win98 @ hdc2
  205. root (hd1,1)
  206. hide (hd0,0)
  207. hide (hd0,1)
  208. hide (hd0,2)
  209. hide (hd1,0)
  210. unhide (hd1,1)
  211. makeactive
  212. map (hd1) (hd0)
  213. map (hd0) (hd1)
  214. chainloader +1

  215. title Vista @ hdc3
  216. root (hd1,2)
  217. hide (hd0,0)
  218. hide (hd0,1)
  219. hide (hd0,2)
  220. hide (hd1,0)
  221. hide (hd1,1)
  222. unhide (hd1,2)
  223. makeactive
  224. map (hd1) (hd0)
  225. map (hd0) (hd1)
  226. chainloader +1

  227. #hdc4 is the extended partition

  228. title B2D Pure KDE 2005 @ hdc5
  229. root (hd1,4)
  230. chainloader +1

  231. title CollegeLInux @ hdc6
  232. root (hd1,5)
  233. chainloader +1

  234. title Berry 0.76 @ hdc7
  235. root (hd1,6)
  236. chainloader +1

  237. title Morphix 0.4 @ hdc8
  238. root (hd1,7)
  239. chainloader +1

  240. title Feather 0.74 @ hdc9
  241. root (hd1,8)
  242. chainloader +1

  243. title Buffalo 1.7.3.9 @ hdc10
  244. root (hd1,9)
  245. chainloader +1

  246. title Cento 4.1 @ hdc11
  247. root (hd1,10)
  248. chainloader +1

  249. title Vector 4.3 @ hdc12
  250. root (hd1,11)
  251. chainloader +1

  252. title Tao Linux 4 @ hdc13
  253. root (hd1,12)
  254. chainloader +1

  255. title Fedora Core 2 @ hdc14
  256. root (hd1,13)
  257. chainloader +1

  258. title Agnula Demudi 1.2 @ hdc15
  259. root (hd1,14)
  260. chainloader +1

  261. title Damn Small Linux 2.1 @ hdc16
  262. root (hd1,15)
  263. chainloader +1

  264. title Monoppix 1.1.8 @ hdc17
  265. root (hd1,16)
  266. chainloader +1

  267. title Sympony A4 beta @ hdc18
  268. root (hd1,17)
  269. chainloader +1

  270. title Pocket Linux 1.2 @ hdc19
  271. root (hd1,18)
  272. chainloader +1

  273. title UltimaLInux 4.0 @ hdc20
  274. root (hd1,19)
  275. chainloader +1

  276. title Vlos 1.2 @ hdc21
  277. root (hd1,20)
  278. chainloader +1

  279. title Tinny Sofa Ceara @ hdc22
  280. root (hd1,21)
  281. chainloader +1

  282. title 64 Studio 0.6 @ hdc23
  283. root (hd1,22)
  284. chainloader +1

  285. title KateOS 2.2 @ hdc24
  286. root (hd1,23)
  287. chainloader +1

  288. title Rubix 1.0 @ hdc25
  289. root (hd1,24)
  290. chainloader +1

  291. title Sam 2006-1 @ hdc26
  292. root (hd1,25)
  293. chainloader +1

  294. title Parsix 0.85 @ hdc27
  295. root (hd1,26)
  296. chainloader +1

  297. title Foxdesktop 1.0 @ hdc28
  298. root (hd1,27)
  299. chainloader +1

  300. title Kanotix 64 2005-4 @ hdc29
  301. root (hd1,28)
  302. chainloader +1

  303. title Pardus 1.0 @ hdc30
  304. root (hd1,29)
  305. chainloader +1

  306. title rPath 0.99.2 @ hdc31
  307. root (hd1,30)
  308. chainloader +1

  309. title Stx 1.0 rc2 @ hdc32
  310. root (hd1,31)
  311. chainloader +1

  312. title Stux 0.9.2 @ hdc33
  313. root (hd1,32)
  314. chainloader +1

  315. title StartCom 4.0.4 Raam @ hdc34
  316. root (hd1,33)
  317. chainloader +1

  318. title Slackware 10.2 @ hdc35
  319. root (hd1,34)
  320. chainloader +1

  321. title Foresight 0.9 @ hdc36
  322. root (hd1,35)
  323. chainloader +1

  324. title Xandros 3.0 @ hdc37
  325. root (hd1,36)
  326. chainloader +1

  327. title Ubuntu 5.10 @ hdc38
  328. root (hd1,37)
  329. chainloader +1

  330. title Kubuntu Dapper @ hdc39
  331. root (hd1,38)
  332. chainloader +1

  333. title Gentoo 2006.1 @ hdc40
  334. root (hd1,39)
  335. chainloader +1

  336. title LinuxTLE 8.0 @ hdc41
  337. root (hd1,40)
  338. chainloader +1

  339. title Underground 2.2 @ hdc42
  340. root (hd1,41)
  341. chainloader +1

  342. title DreamLinux 2.1 @ hdc43
  343. root (hd1,42)
  344. chainloader +1

  345. title Linux Mint 2.1 @ hdc44
  346. root (hd1,43)
  347. chainloader +1

  348. title Pioneer 1125 @ hdc45
  349. root (hd1,44)
  350. chainloader +1

  351. title Ubuntu 7.04 @ hdc46
  352. root (hd1,45)
  353. chainloader +1

  354. title Bayanihan 4 @ hdc47
  355. root (hd1,46)
  356. chainloader +1

  357. title Mandriva 2007 @ hdc48
  358. root (hd1,47)
  359. chainloader +1

  360. title Freespire 1.1.73 @ hdc49
  361. root (hd1,48)
  362. chainloader +1

  363. title Caixa Majica 11 @ hdc50
  364. root (hd1,49)
  365. chainloader +1

  366. title Ehad 2006 classic @ hdc51
  367. root (hd1,50)
  368. chainloader +1

  369. title Vlos 1.3 @ hdc52
  370. root (hd1,51)
  371. chainloader +1

  372. title Backtrack 2006-2 @ hdc53
  373. root (hd1,52)
  374. chainloader +1

  375. title Ubuntu 6.06 @ hdc54
  376. root (hd1,53)
  377. chainloader +1

  378. title Blag 30002 @ hdc55
  379. root (hd1,54)
  380. chainloader +1

  381. title Fedora Core 5 @ hdc56
  382. root (hd1,55)
  383. chainloader +1

  384. title Suse 9.1 Professional @ hdc57
  385. root (hd1,56)
  386. chainloader +1

  387. title Vine 4.0 @ hdc58
  388. root (hd1,57)
  389. chainloader +1

  390. title Wolvix 1.0.5 @ hdc59
  391. root (hd1,58)
  392. chainloader +1

  393. #Starting point of another hard disk----------------------------

  394. title XP Pro @ sda1
  395. root (hd2,0)
  396. hide (hd0,0)
  397. hide (hd0,1)
  398. hide (hd0,2)
  399. hide (hd1,0)
  400. hide (hd1,1)
  401. hide (hd1,2)
  402. unhide (hd2,0)
  403. makeactive
  404. map (hd2) (hd0)
  405. map (hd0) (hd2)
  406. chainloader +1

  407. title Xenoppix 3.03 @ sda2
  408. root (hd2,1)
  409. chainloader +1

  410. title Musix 0.39 @ sda3
  411. root (hd2,2)
  412. chainloader +1

  413. #sda4 is the extended partition

  414. title GeoLivre 5 @ sda5
  415. root (hd2,4)
  416. chainloader +1

  417. title Ututu x2 2005.1 @ sda6
  418. root (hd2,5)
  419. chainloader +1

  420. title Helix 1.7 @ sda7
  421. root (hd2,6)
  422. chainloader +1

  423. title MagicLinux 2 rc2 @ sda8
  424. root (hd2,7)
  425. chainloader +1

  426. title Zenwalk 1.2 @ sda9
  427. root (hd2,8)
  428. chainloader +1

  429. title MedianLinux 4.0 @ sda10
  430. root (hd2,9)
  431. chainloader +1

  432. title NetBSD i386 3.0 @ sda11
  433. root (hd2,10)
  434. chainloader +1

  435. title Arabian 0.6 rc1 @ sda12
  436. root (hd2,11)
  437. chainloader +1

  438. title Mepis 3.3.2 @ sda13
  439. root (hd2,12)
  440. chainloader +1

  441. #sda14 is Fat32 partition holding personal data

  442. title Slamd64 11 @ sda15
  443. root (hd2,14)
  444. chainloader +1

  445. #Starting point of another hard disk----------------------------

  446. title Win 2k @ sdb1
  447. root (hd3,0)
  448. hide (hd0,0)
  449. hide (hd0,1)
  450. hide (hd0,2)
  451. hide (hd1,0)
  452. hide (hd1,1)
  453. hide (hd1,2)
  454. hide (hd2,0)
  455. unhide (hd3,0)
  456. hide (hd3,1)
  457. makeactive
  458. map (hd3) (hd0)
  459. map (hd0) (hd3)
  460. chainloader +1

  461. title FreeDos @ sdb2
  462. root (hd3,1)
  463. hide (hd0,0)
  464. hide (hd0,1)
  465. hide (hd0,2)
  466. hide (hd1,0)
  467. hide (hd1,1)
  468. hide (hd1,2)
  469. hide (hd2,0)
  470. hide (hd3,0)
  471. unhide (hd3,1)
  472. makeactive
  473. map (hd3) (hd0)
  474. map (hd0) (hd3)
  475. chainloader +1

  476. title System Rescue CD 2.1.6 @ sdb3
  477. root (hd3,2)
  478. chainloader +1

  479. #sdb4 is the extended partition

  480. title Xfld 2.0 @ sdb5
  481. root (hd3,4)
  482. chainloader +1

  483. title Kanotix 2006-1 @ sdb6
  484. root (hd3,5)
  485. chainloader +1

  486. title Paipix 5.00 2006-3 @ sdb7
  487. root (hd3,6)
  488. chainloader +1

  489. title Frugalware 0.4 @ sdb8
  490. root (hd3,7)
  491. chainloader +1

  492. title Sabayon x86_64 3.0 @ sdb9
  493. root (hd3,8)
  494. chainloader +1

  495. title Quantian 0.7.9.1 @ sdb10
  496. root (hd3,9)
  497. chainloader +1

  498. title Suse 10.1 x86 64 @ sdb11
  499. root (hd3,10)
  500. chainloader +1

  501. title Slackware 11 @ sdb12
  502. root (hd3,11)
  503. chainloader +1

  504. title Knoppix 4.0.2 @ sdb13
  505. root (hd3,12)
  506. chainloader +1

  507. title Mandriva 2006 0.4 @ sdb14
  508. root (hd3,13)
  509. chainloader +1

  510. title Fedora Core 6 @ sdb15
  511. root (hd3,14)
  512. chainloader +1
复制代码
我知道这一页很枯燥,除非你对细节很感兴趣。那么看看下面的统计数据
发行版国家
2 阿根廷
1 亚洲
4 澳大利亚
1 奥地利
1 比利时
4 巴西
1 保加利亚
5 加拿大
3 中国
2 捷克
2 欧洲
7 法国
14 德国
3 全球
1 匈牙利
1 印度
2 伊朗
1 爱尔兰
5 马恩岛
3 以色利
5 意大利
5 日本
1 尼泊尔
2 荷兰
1 新西兰
4 挪威
1 菲律宾
2 波兰
2 葡萄牙
2 波多黎各
1 韩国
1 瑞典
2 瑞士
1 叙利亚
1 台湾
1 泰国
1 土耳其
5 英国
44 美国
145 总计
39个国家在支持这些操作系统。
3个Dos     & nbsp;   -Dos 6.22, Dos 7.1 和 Freedos。
5个Windows     -Win 3.11, Win98, Win2k, XP home 和 Vista。
114个不同的Linux,其中17个有多于两个版本,3个有3个不同版本,2个有5个版本。比如,我安装了2,3,4,5和6版本的 Fedora core。
除了下载的测试版本Vista,我的其它微软系统都是掏钱了的。所有的Linux都是网上不花钱下载下来的。
Linux可以从很多网站免费下载ISO烧成可安装的CD。一旦CD启动,用户可以很快的在10到12分钟之内根据指导安装系统。
很多Linux发行版本提供 Live CD,你可以通过它拥有一个操作系统而不必把它安装到硬盘上。
下篇继续
3#


技术细节
硬盘注意事项
大多数微软系统是设计为安装在主分区,而一个硬盘最多可以有4个主分区。为了得到更多的分区用户“必须”要放弃一个主分区,而把它作为一个扩展分区。在Linux中,一个 Pata (或者 IDE)硬盘最多可以有63个分区,对于Sata 或 SCSI的限制是15个。
分区数加上硬盘自身总共组成64和16个设备。
扩展分区也消耗一个设备名称,但是不能用于存储,因为它只是定义逻辑分区开始和结束点的边界。
Linux在主分区和逻辑分区都可以安装和引导,基于这一点把主分区分给微软系统是有利的。
在任何一个硬盘上,Linux通常把逻辑分区的每一个分区命名为第五分区。因此,理论上在一个 Pata硬盘上,就是hda,主分区最大的可以使用hda1, hda2 和 hda3 三个名称,hda4作为扩展分区支持最多59个逻辑分区(从hda5到hda63)。
在实际中,一些Linux阻止显示第60个以后的分区,还有一些发行版,像红帽家族,不显示超过15以后的分区,甚至它们自己被安装在这些限制之后也是一样。
你最多可以从2 Pata 和 2 Sata得到2*(63+15)= 156个分区。因此如果想要我可以再搞4个多余的分区。
分区方案
我让微软系统占据所有的主分区,Linux基本上全放在逻辑分区。一个swap分区,当然也在逻辑分区,为所有的Linux服务。对 BSD 和 Solaris 系统我使用分离的硬盘。
作为一个原则,我通常把一个操作系统装到一个单独的分区。这使得维护,引导和理解都更容易。这可能不是最优的选择,但是它对我安装的每一个Linux都有用。
这是我分配给每个系统的分区大小
(a) Dos 1或2Gb (主分区, 格式 fat16 或 fat32)
(b) XP 和Vista  25Gb和 20Gb (主分区, 格式 NTFS)
(c) 我使用的Win2k 15Gb (主分区, 格式 NTFS)
(d) 我使用的Win98 5Gb (主分区,格式 fat32)
(e) Linux 5Gb (大多数) 和 10Gb ( 少数大的发行版本) (逻辑分区, 不是 Ext3 就是 Reiserfs )
(f ) 一个swap 1 Gb 所有 Linux 共用
(g) 巨大的个人数据 95Gb  fat32
实际大小见fdisk -l表一中的输出。
我 使用Linux专有的分区工具“cfdisk”,“fdisk”作为替补队员。它们都是一个Linux Live CD所带的标准工具。我分别指定83,82,6,C,7(为一个原产的Linux),swap,fat16,fat32和NTFS分区类型号码。使用 cfdisk分割硬盘分区的默认类型是83,安装的每个Linux都认出了它。
我从不自己格式化分区,因为每一个安装程序都不会相信我,它们喜欢自己格式化自己的家。
一些日子过后我开始使用一个叫“gparted”的自由分区工具,它已经被分支进了“Parted Magic”。它提供免费下载的ISO文件,可以烧到CD上使用。
我相信以正确的格式准备好分区是一个好的策略,以便于让安装程序认出来。如果你让安装程序的生活好过一点。作为回报它会很少给你找麻烦。
所有引导方案成功的老妈 -纯数据分区的Grub
这实在只是我的一个建议,并且它对一个普通的Linux用户完全是不必要的,普通用户把他/她的手放在他/她第一次偶遇的Grub上,并能让Grub做到我下面说的所有事情。然而如果按我的建议做它会带来好处
(1) Grub 没有放在任何一个操作系统,所以你可以把它当做一个微型操作系统来使用 。
(2) 每个操作系统都能通过使用只有分区差异的基本相同设置的命令间接启动(熟知的链式引导chain loading)。它对所有的操作系统都起作用,不管它是 Dos, Windows, Linux, BSD 或 Solaris.
(2) 每个微软系统和Linux系统都能控制Grub,只要它被安装到了分区上,比方说FAT16或FAT32格式,在它之上每个系统都能读,写和改变它自己的引导菜单。
(3) Grub 唯一的被安排去启动、格式化和安装操作系统的引导程序,甚至在分区创建之前也能引导。这是引导中最爽的事了。
(4) Grub 所在的纯数据区没有进驻操作系统,但是能被任何一个Linux引导。安装在主分区并且引导标志设置为活跃状态的 Dos 或 Windows MBR 也能引导它。
这就很容易理解我的“外”Grub安装的建议不会被任何一个操作系统喜欢了。Grub不能读取NTFS文件系统,所以它应该被装在一个FAT16或 FAT32分区。我把它放在我第一个 Pata硬盘的第三个分区。在Linux中被认为是hda3,我的第一,第二,第三和第四个硬盘分别是 hda,hdc,sda 和 sdb。
把Grub安装到纯数据区涉及以下步骤
(A) 格式化数据分区为FAT16格式。最好的方法是启动一个Linux Live CD,打开一个终端,下达一个格式化分区为FAT16的命令。

命令:
  1. mkdosfs –F16 /dev/hda3
复制代码
作为选择,分区也可以用一个Dos软盘格式化,从Bootdisk.com下载,用Dos命令提示符命令
命令:
  1. format c:/
复制代码

假定hda3之前的分区都是非Dos或隐藏的。
FAT16的使用是经过考虑的,因为在FAT16上Dos不能寻址超过2Gb,不能认出Sata,但是我们仍然能用在那里的Grub去引导电脑上的145个系统。

(B) 接下来的任务是拿到Grub安装需要的三个文件。它们叫stage1, stage1.5 和stage2,在同一个目录,在任何一张支持 Grub的Linux Live CD里都找得到。所以只要启动一张 Live CD,用命令叫Linux报告它们的位置
命令:
  1. find / -name stage1
复制代码
你会发现这些文件基本上在这些位置
Red Hat, Fedora C2 to C6
/usr/share/grub/x86_64-redhat/stage1
/usr/share/grub/i386-redhat/stage1
Mandriva
/lib/grub/i386-mandriva/stage1
Mandrake
/usr/local/lib/grub/i386-pc/stage1
/usr/lib/grub/i386-pc/stage1
Suse
/usr/lib/grub/i386-suse/stage1
Gentoo, Knoppix, Mepis, Xubuntu, Ubuntu, Kubuntu, Debian
/lib/grub/i386-pc/stage1
Frugalware, Kanotix
/usr/lib/grub/i386-pc/stage1
下 一步是在启动的 Live CD Linux 里面新建一个临时目录,挂载纯数据hda3分区,在里面新建一个/boot/grub 目录,把所有 Grub 的stage1, stage1.5 和 stage2文件拷进去,调用一个Grub 命令行,设置Grub进入MBR,退出。用 Ubuntu CD 举例命令会是
命令:
  1. mkdir /mnt/hda3
  2. mount /dev/hda3 /mnt/hda3
  3. mkdir /mnt/hda3/boot
  4. mkdir /mnt/hda3/boot/grub
  5. cp /lib/grub/i386-pc/* /mnt/hda3/boot/grub
  6. grub
  7. root (hd0,2)
  8. setup (hd0)
  9. quit
复制代码
重 启过后会引导到hda3上,除了一个 Grub 提示命令之外什么也没有。这表示 Grub 现在控制了MBR,连接到hda3分区了,并且如果在/boot/grub 或/boot目录下有一个叫“menu.lst”的配置文件,那么它会控制 Grub。如果 Grub 找不到它,默认会显示一个Grub 提示命令行。
注意有些版本的 Grub ,特别是红帽家族,会被改进读取”Grub.conf”而不是“menu.lst”。
虽然 Grub 用户手册没有说明但是依我的经验,没有任何一个操作系统不能被 Grub 命令引导。乍一看没有什么,但是很少有什么东西能那么简单又那么强大。
(C)现在该是写一个引导145个系统的菜单的时候了。它只是一个必须命名为 menu.lst 的文本文件,放在/boot/grub 子目录下。Grub 用下面的三行引导每一个系统:-
一个“title”声明,在屏幕上显示系统的名称。任何在单词“title”后面的文字会被显示,并且会导致系统的引导除了提醒你这是一个什么系统之外。
一个“root”声明,指定操作系统的根文件夹。也就是说目标系统所在的分区。Grub 从0开始计算每件事,所以要引导一个在第2块硬盘上第9分区的系统命令是“root (hd1,8)”。同样 (hd0,0) 指第1块硬盘的第1个分区。
一个“chainloader”声明,它总以 “+1” 结束。
所以你看到了这也没有什么。甚至像我一样的笨蛋也很应付得来。
为了偷懒我写了一个小程序产生引导菜单,因为它只是在做4个循环,在我这里是每个硬盘来一个循环。
因此我 menu.lst 的开头会像这样
代码:
  1. title Empty @ hda1
  2. chainloader (hd0,0)+1

  3. title Empty @ hda2
  4. chainloader (hd0,1)+1

  5. title Empty @ hda3
  6. chainloader (hd0,2)+1

  7. title Empty @ hda4
  8. chainloader (hd0,3)+1

  9. and so on
复制代码
无论何时只要我想更新,就编辑菜单,用操作系统的名字代替“Empty”。生活如此简单美丽,如果没有微软系统那额外的工作。这就是我随后的工作。
简单化的安装方案
Linux很容易安装,所以我先写它。
linux 很少需要整理文件系统,因为它使用了一个叫swap的交换分区。因此要为第一个Linux系统准备一个swap分区。从那以后,所有其他的Linux会不说一声谢谢的冲进去使用它。除了使用Linux cfdisk程序创建它之外,你不需要做些其他的什么了,大小约是物理内存的两倍,选择分区类型82。每个Linux 安装程序会知道怎么使用它。它们一些坚持要校验它,其它的问你允许它们格式化它,余下的大多数甚至都不告诉你它们对它做了什么。我在hda5分区创建了一个swap分区,只要安装程序自讨苦吃我就回答“hda5”。
在每一个Linux安装过程中,我们可以“指导”安装程序把Linux放到任何我们想要放的分区。这是通过提名一个分区作为Linux的根分区或 “/” 挂载点。如果没有多于一个分区分给安装程序,它会把Linux目录/boot, /home, /usr…..作为 “/” 的子目录紧接的放进去,所以你只要担心积累的内容是否会耗尽你所有的分区容量。
引导装载器的选择,通常不是 Lilo 就是 Grub,对提议方案来说是无关紧要的。
当涉及到引导装载器的位置时这又是另一回事了。每个Linux 安装程序会让引导装载器安装在不是(a)MBR,就是(b)正在安装的Linux 的根分区。我的提议方案“只有”在后者被选择的情况下才会有用。有些不听话的 Linux 会省略给你一个选择,并偷走MBR的位置。也在可能你正在喝茶,然后按下了一个错误的键而失去MBR。在这种情况下你可以通过启动那张 Live CD 重新要回原始的MBR,开一个终端,打出这些命令去恢复 Grub
代码:
  1. root (hd0,2)
  2. Setup (hd0)
复制代码
它会逐字的要求 Grub 从指定的根目录 “获得”需要的文件,安装到整个 (hd0) 盘上,没错那就是MBR。
对Linux 安装/引导在硬盘大数字分区或超过137 Gb 之外能力的警告之词
我 安装的系统都能被一个 menu.lst 引导。有些老的发行版对认出16以上的分区有困难,更不要期望更大数字分区的设备名称,有的不能访问超过137Gb的硬盘空间。这些发行版必须安装在小数字分区和硬盘的前137Gb之内。如果你发现某个发行版拒绝引导或安装请看一下我的 menu.lst,检查所知的能工作的分区位置。
Dos和Windows系统
安装微软系统有很多方法。为了简单,容易控制和维护,我推荐作为一个单机独立系统在“C”盘安装每个系统。这就是说在微软系统中不通过NTLDR双重引导。我有一个移动机架系统,所以我可以拔出所有其他的系统而只留下要安装微软系统的那一个硬盘。因此在我的情况下,每个微软系统都是作为第一个可引导的硬盘安装的。一旦安装完成我不改变它的分区位置而是把硬盘放到其他的位置。 Grub 在工作中可以很灵活的重绘硬盘次序,把第一个可引导硬盘的状态重新给回微软系统。
把微软系统安装在“C”盘就是说除了要安装的分区之外没有分区会被安装程序认出来,因而它可以正当的要求得每一个分区状态。如果有一个分区微软系统能认出来,就是说一个 Dos 分区,那么我们可以通过隐藏它来对付,使用 Live CD。如果要隐藏第一个硬盘的第一个分区,不隐藏第二个分区并使它对微软系统可引导,Grub命令是
命令:

  1. hide (hd0,0)
  2. Unhide (hd0,1)
  3. Makeactive
复制代码
在电脑上隐藏一个分区就不是物理的把分区隐藏起来。只是改变了它的分区类型号。通常是添加一个数字“1”。这样,如果一个FAT32和NTFS分区的类型号分别为 c 和 7,当改变为 1c 和17时,在微软系统中就会被得不可见。不隐藏它就是把数字“1”去掉。这是一个电脑中最古老的诀窍,还是在 Dos 是事实上的操作系统时被发明的,它允许用户引导多个操作系统。
安装微软系统可能需要它自己的MBR。引起我注意的是微软系统共享一个公共的MBR。这个MBR的功能是搜索4个主分区中的每一个,并启动引导标志打开的系统。
作为例子,这里有我在 hdc3 安装 Windows Vista 的简要步骤。
把硬盘 hda,sda 和 sdb 移走,把 hdc 插入先前被 hda 占据的机架位置。现在原来的 hdc3 对 Grub 来说就是  (hd0,2) 了。
启动 Dos 软盘,通过命令在硬盘恢复微软 MBR
命令:

  1. fdisk /mbr
复制代码
启动  Grub 软盘,隐藏开头两个分区,然后用 geometry 检查硬盘
命令:

  1. hide (hd0,0)
  2. Hide (hd0,1)
  3. Geometry (hd0)
复制代码
geometry 命令是在安装之前检查所有的东西是否状况良好。Hda3  应该已经为NTFS文件系统创建好足够的类型为7的空间。
安装 Windows Vista 并选择第三分区作为它的家。
安装后重启确认 Vista 是否正常工作。
关机,插上打算供给 Vista 永久的家的硬盘,也就是说有一个叫 hdc 的奴隶硬盘已经在第三主分区位置有一个和 hda3 一样大的分区,插放 Live CD,启动系统,在根用户终端通过命令把 Vista 系统克隆出去
命令:

  1. dd if=/dev/hda3 of=/dev/hdc3 bs=32768
复制代码
然后我又关机,恢复所有的硬盘,又一次启动  Live CD,用它修正 hda3 中的 /boot/grub/menu.lst,通过下面的入口引导 hdc3 分区
命令:
  1. title Vista @ hdc3
  2. root (hd1,2)
  3. hide (hd0,0)
  4. hide (hd0,1)
  5. hide (hd0,2)
  6. hide (hd1,0)
  7. hide (hd1,1)
  8. unhide (hd1,2)
  9. makeactive
  10. map (hd1) (hd0)
  11. map (hd0) (hd1)
  12. chainloader +1
复制代码
两 个map声明指示 Grub交换 (hd0) 和 (hd1)的位置,以便当 Vista 启动时它会发现自己仍然按照原来的安装一样处于第一可引导硬盘的位置。5个 hide 声明是必需的,隐藏5个 Dos 和 Windows分区,防止 Vista 看到扰乱它的“C”盘状态。
我对其他微软系统使用相同的原理,设法在同一台电脑里搞上了3个版本的 Dos 和5 个版本的 Windows。更多微软系统能被容纳但是我所有能搞到的就这些了。
结尾注意事项
我 的初衷是学习 Linux,理解它如何工作并会引导它。当看到在 Linux 的世界是这是多么容易和有逻辑,我感觉巨大的惊奇。在使用了这么多年微软系统以后,看起来所有我不能理解的电脑如何工作的问题在 Linux 里面突然变得可以理解,因为 Linux 的系统内部工作是一个公开发表的知识。
人们可以对 Linux 说任何他喜欢的话,但是我2.5年的使用 Linux 教会我使用一个最古老的分区(FAT16)去安置一个陈旧的引导装载器(这里描述的 Grub就是当我开始学习 Linux时,GNU/Grub维护者已经公告停止转移他们的努力到新的 Grub 2去的支持的那个 Grub)去引导我能访问的145操作系统。而方案可笑的简单。
我很感激那些无私的维护和开发开源软件的 GNU/Linux 志愿者。我知道他们中有一些人冒着被抓钱公司起诉的风险工作,因为他们的努力减少了我们对商业软件的依赖。
2.5年以来我见证了 Linux 功能和易用性的巨大飞跃。我也从那么多国家贡献于把这些操作系统带给大众的努力中得到灵感。它们中的很多发行版在技术上很突出。
4#
[size=+0]引导方案的说明注解
(1) 在一般情况下一个Linux用户能用任何一个发行版中的得到的第一个Grub和使用它的 menu.lst  引导剩下的144个系统。
(2) 标准的 Grub 执行程序使用 menu.lst 作为菜单文件,它不在/boot 就在/boot/grub 目录下。很少部分,特别是那些属于红帽家族的,使用一个指向 Grub.conf的符号链接。我只遇到一个或两个只使用 Grub.conf 而没有 menu.lst 的发行版。
(3) 那个简单的 Grub 引导方案使任何一个操作系统立即变得可引导当它的安装完成时,只要根分区被灌进了引导文件。一些早期发行版本比如 Suse 和 Debian运行一个两段式安装程序,需要重启来完成安装。这种安装方式不会影响我提出的引导方案。只要在第一阶段结束后引导要求的分区,安装程序会完成剩余的工作。
(4) 建议的引导方案是了解一般引导和特别是Grub 是如何工作的很好的范例。
(5) 不可能用 NTLDR,类NT Windows 比如 Win2k 和 XP 使用的引导程序,去引导我表单里那么多的 Dos 和 Windows,更不用说 Windows 启动时会影响的那么多 Linux,ini配置文件最多允许10个入口的静态界面。我从没试过所以也不能评论我认为它和NTLDR有区别的 Vista 新引导程序,。
(6) 从技术上说也没有可能用 Lilo 作这么一个引导方案,因为(a)Lilo会检查每一个入口,并且拒绝执行如果发现那不是一个有效的可引导分区,所以不要希望Lilo 接受一个为引导做准备的空分区。(b)Lilo也使用一个最大数目为27个引导镜像的静态引导界面。因此如果谁想要引导大量的系统,Grub 是唯一的选择。
(7) Grub 根据版本发布有很多不同的特性。明智的选择是在引导方案中使用最新版本0.97。Grub 可能会失败当你叫一个低版本的小弟去“链启动”它的大哥。
(8) 在我提议的简单引导方案使用时,Grub是最精力充沛的引导程序。这是因为引导过程完全不依赖于任何系统包括Linux 内核。一旦Grub 被Linux 创建进程,就是当在Bash 命令行调用 Grub shell时,它会承受任何内核可能带来的不足。比如在 Linux 启动之前Grub 会看到从BIOS那时得来的所有分区设备。可是当一个老的Linux 启动后它的内核可能不会预见大数字的分区,可能不会装载所有设备导致Grub无权使用那些大数字的BISO设备。因此用户相要在一个大数字的分区比如 hda60 恢复 Grub,这个Linux 命令可能会失败
命令:

  1. grub-install /dev/hda60
复制代码
然而从软盘启动 Grub,同样的任务总是会成功
命令:
  1. root (hd0,59)
  2. setup (hd0,59)
复制代码
(9) 提议的引导方案可能从一个软盘执行。
(10) 像Dos一样,Grub现在还在承受不能识别USB设备的痛苦,并且我还没发现任何能从USB设备启动的Grub。记住当Grub 启动时它还无权使用一个内核,因此它不能察觉可移动设备除非充分的改进它的代码。Grub的计算机代码显然只有随着引导程序标准的完善而成长。< /p>
(10) 如果由于任何原因引导程序不完善或不正确的被安装到了根分区,参考这个链接 去恢复。一个安装程序可能比一个操作系统本身有更多的bug。
[size=+0]安装方案的说明注解
(a) 在同一个硬盘安装大数量的发行版的一个问题就是它会吓到一些Linux,然后把安装程序吓得粉身碎骨。这对一些看起来对设备名称的限制的老一点的发行版来说是真的。例如很多发行版分区名称在 hda20 或 hda24 或 hda32 就停止了。

(b) 在极端情况下,在不多于15个分区的单独硬盘(因为 Linux 最多支持15个分区的SCSI/Sata硬盘)上安装Linux ,然后通过使用 Linux 的“dd” 或 “tar” 命令,把它移动到另一个硬盘的最后位置,这是可能的。然而被提到的分区应该在引导程序配置文件中更新,menu.lst 或 lilo.conf 中的一个,和系统文件 /etc/fstab。顺着这条思路让Linux 扩展它的 /dev 列表,还有就是遵循 Exodus2001bwkaz的建议。
5#
我注册成为这个论坛的会员只为一个单一的目的:就是问你…
为什么?
6#


zheepeez,
欢迎来到 Justlinux
这个思想就是展现引导在Linux 是多么的简单。
这个思想就是展现引导在Linux 是多么的简单。

它也证明了 Grub 能用同一命令引导操作系统而不必关心他们的类型。Grub 能在不需要被安装到操作系统里的情况下做到这一点,虽然对大多数用户来说他们只简单的使用从随便一个 Linux 或 Solaris那里搞来的 Grub。

作为系统的一部分,我也引导了一些BSD 和 Solairs 系统,但是我并没有把它们包含在我的计划里,因为安排上有一些复杂,以致于我要嵌套多层 Grub 菜单和隐藏整个扩展分区以防止 Linux 系统们的抱怨。

这个思路可能有点过时了,因为 Linux 已经停止使用 Pata 磁盘设备名称了,所以63个分区在一个 Pata 硬盘上已经不被2.6.20以后的内核支持了。所有SCSI/Sata/Pata/USB 磁盘都只能有15个分区,也可以在一个硬盘上搞出44个分区来但需要一些特别的安排。你也可以使用LVM但这可能对非 Linux 系统不怎么友好。

当前的思路是把它作为对12个月前一篇描述一个引导 100+ 系统的Grub 菜单的帖子的问题的指南。更早一些的线索是从对互联网的兴趣里产生出来的,并且强迫我去找到一条解释如何去安装和引导大量系统的简单方法。最后我决定做通过解释操作系统是被链式引导,从而使我的工作量最小化。因此我可以说明, Grub 菜单可以先被写出来甚至在安装145个系统中任一个之前。

因为几乎所有的 Linux ,BSD 和一些 Solaris 都是自由产品,Linux 用户必然会有一个增长的均势,他们通常引导多于一个系统。我希望我的思路可以减少拥有多系统的恐惧。

JustLinux 拥有这个“How I did it”子论坛可以让我发布上面这些信息。我从2004年6月加入 Justlinux 那天开始学习 Linux 。一个月之后,版主和会员手把手教会我引导4个系统。我把自己看成一个初学者如何通过论坛帮助学习 Linux 的活生生的例子。

在 Linux 里可能有很难的东西,但我不认为引导是其中一个。
7#

真是个酷哥!
如果你能贴点图片那就爽了
或者更好的是做些视频,上传到YouTube
你立刻会变成一个企鹅英雄!
8#

chinhnt2k3,

欢迎来到 JustLinux。


我只是记录步骤。我想分区表和 Grub menu.lst 更能充分的证明我的系统。

我从加入 Justlinux 那天开始学习 Linux并且写了一些想法。这些想法的文章写的是,作为一个完全初学者我从 JustLinux 上学习多重引导,4个系统用了19天,19个系统60天,30个系统129天和100+ 系统 550天。当前的想法是记录下用户多重引导很多系统的最简单方法。我是只走马观花/概述 Justlinux 上的人们教我的知识。

9#
Wow!
牛B老兄,你是系统之神!
10#


Kaliatri,

欢迎来到 JustLinux.
11#

谢谢,我从Digg上来-这很令人惊讶,虽然有点没有意义,但还是很惊讶。

智慧之词

    * 如果你需要多于3个级别的缩进,无论如何你会被搞晕,需要检查你的程序了。
    * 有人对我说过,他不认为肥企鹅能代表 Linux 的优雅。他们只是告诉我他从没见过一只愤怒的企鹅以超过100的时速向他冲锋。如果他们这样干过那以后他说话要注意点。
12#

在文章中有很多不常见的特性,对证明Grub 是如何工作的很有用

引导程序 Grub 可以先被准备引导所有145个系统在他们任何一个安装之前。

每个系统都可用相同的3行Grub 命令引导,不管它是Dos, Windows 还是 Linux(也包括BSD和Solaris,没有被展示但是它们在电脑里)

MBR 里的 Grub 被安装在一个没有操作系统的数据分区。

另外所有的东西都是标准的,没有功能被砍,就像正常安装的操作系统一样。
13#
我也是从Digg 来的。真有趣。虽然你把 UNIX 的美味丢了。

虽然你很熟练的完成了任务,可能通过使用虚拟化技术更容易(比如...你想开发跨平台软件,保留原始代码/内核作为对比校验),或者也许一台带 PC-on-a-card 附加的SUN 工作站。(虽然你可能不能在上面运行 Vista ,但我不认为有太多人会错过他如果他上面有145个 Linux 在运行)。
14#

alpha754293,
欢迎来到 Justlinux

上面说到的145个系统中的XP就有VMware 和几个Linux 客户系统在其中。


VMware ,至少我的免费版本,令人很失望,因为它必须分配一部分内存去运行每个客户系统,这使得每一个系统都巨慢。这种情况下的Linux 也被一个虚拟分区包围起来了,除了主机之外不能和外界通信。也就是说我不能在客户机之间互相挂载。客户机也没有引导程序因为它自己都没有启动。不是所有的客户系统都被安装,因为安装程序没有想过自己会住在一个虚拟的机器里面。VMware 说明文档不推荐多于4个客户机,因为那样的话每个系统都只会能1/4的可用内存。VMware也不推荐同时运行4个系统,这个慢慢的增加内存需求直到限制突破。所以是的我也试过虚拟机这一层,但是它没有给我留下深刻的印象。

上面看到的145个系统能互相访问数据只要相关的分区挂载上了。一个Linux 能通过使用“chroot”切换到另一个Linux 的 Bash shell里,在某些情况下也能运行另一个X-windows。在这方面我没有调查,但是看起来一个Linux 可以“chroot”大约3个其它的系统,同时运行他们的桌面,虽然不总是会成功。

类Unix系统使用BSD子部分和子块会被Linux 觉察为逻辑分区。这个冲突让BSD和Solaris 系统很讨厌Linux 系统。也有些Unix 系统不能接受一个Pata硬盘上的63个分区,不能安装(也有一些2.6.20内核以后的Linux )。FreeBSD一类系统能被安装如果没有太多分区的硬盘存在,但是会拒绝引导只要插入这样一个硬盘。

实际上我也发现了一个运行类Unix 系统并使它们的电脑中的另145个系统共存的方法,通过引入一个额外的 Pata 硬盘带进另23个系统。我有意发表了这个这里已经使用过的技巧。展示了如何隐藏整个扩展分区和嵌套一连串的 Grub菜单。

为了回答2005年12月写的引导100+系统的Grub菜单的一些问题,这写了当下这篇文章展示安装和引导大量操作系统最简单的和最容易的方法,在当中我要把原来的的100+系统移到另一台电脑上去,尝试不同的方法去做这件事,并记录下安装和引导他们最简单的方法,在十二个月的时间里系统数字随之增长。

现在这篇文章是2006年12月发表在 Justlinux 论坛的,到今天已经9个月了!Digg上的读者误认为这是一个即时的系统数字“要求”,但它真的是关于“安装大量操作系统的最早和最简单的方法”。

我正在使用KVM运行3台电脑,它允许我访问不同的操作系统不管是物理的还是虚拟的(后者是运行VMware的XP)。虚拟机通过实体抓取系统内存运行,所以主机和客户机都要遭受性能损失。我发现那种系统反应还不如一台使用KVM的老电脑。虚拟机管理层有它自己的位置,但是以我有限的经验看起来它不会成为普遍的好东西。

这篇文章描述的方法工作得很好,不管是一个系统还是另外200个。145只是一个例子。
15#

我不知道同时引导不同的系统。

虽然我会同意你,除非你有一个集中的、脱离主机的服务器 (SAN/NAS/分离文件服务器) ,不然你不可能跨平台看到/使用数据。

我可能已经大概3年没有使用过VMware了,看起来从那时到现在他们的支持有了很大的改善。我也不会回来去测试它了。

我对VMware那巨慢的表现没有特别的印象。我猜想它会在内存更宽裕的企业计算机上会工作得很好。

我也了解到Solaris最近的发布,有一个通过Solaris Linux容器在Solaris内部运行Linux原生程序的方法。不幸的是,它仍然有对32位程序限制,我也没有测试过它去试试它的原生是什么,还有它和单独安装的主机上原生的Linux运行的程序表现有什么区别。

虽然在 PC-on-a-card(l比如 Sun PCi II协处理器卡)上,除了Vista和64位系统,你也可以在每个全特性的系统上切换,然后又可以通过硬盘镜像启动协处理器卡达到共享数据库,像外部文件服务器(我还没找到不通过网络和包含主机系统的数据库通信的方法)一样处理的目的。


我现在通过KVM控制6台电脑,第七台通过分离的显示器(13W3),鼠标和键盘 (Sun Type 5)。第八和每九台离线。第十台一周内就来了。还有两台没联机的笔记本。

基本4台是文件服务器(1台离线,第8台),1台作为计算节点(唯一一台),1台“通常使用/每天使用”,2台工作站,1台常规服务器(第9台),外加1 台上载文件服务器,配置是30(大概)个处理器,60个硬盘,80 GFLOPS的计算能力。
16#

alpha754293,

看起来你在一个有30个处理器的硬件天堂。当开始看你的第三个系统时我已经搞不清楚了。

The Solaris Container for Linux, 它是开源的?
17#

你是我偶像!
优秀并不是一种行为,而是一种习惯!
幽游生活

返回列表