a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 74|回复: 0

[综合辅导] Linux认证:解决大硬盘上安装ScoUnix新思路

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
一、问题提出
8 L) v1 B: U+ y  硬盘越做越大,然我喜欢让我忧。10年前就遇到过在586电脑BIOS不认识超过8.4G容量硬盘的问题,以及Windows Nt操作系统不认大硬盘(容量超过8.4G)的问题,对于Linux 通过LILO启动的时候也不能突破硬盘8.4G容量的限制。% p# H& u" z& c# s
  原因主要是这样,过去的BIOS使用的是8位寻址方式编号从0到7,故他表示的范围是0-255之间变化,硬盘容量大小的计算方法是:512X磁头数X柱面数X每磁道扇区数,每个扇区的大小是512字节,所以最大寻址范围是: (1024 * 255 * 63 * 512/1024/1024)=8.4G 。
. j# e" W) I, m7 i( x) f# ?# b% ]  目前的电脑主板BIOS普遍采用48位寻址,早已解决了137G硬盘的限制,最近我们机房服务器升级更换批旧服务器,需要把UNIX系统更换到新机器上,机房到了一批新Dell OptiplesGx755 PC,配置有120G硬盘,用作UNIX Server,操作系统为Sco UNIX Open Server 5.0.6。2 W$ ~$ A# {# O% p: [
  先按默认参数在其上安装UNIX,安装完毕后发现,进入UNIX后只能找到8G的硬盘空间。因为这批机器是专门配置为在UNIX下工作的,剩下约112G无法利用,硬盘的利用率只有7%,资源浪费极大。我们就开始做实验继续尝试不同的方法解决问题。, }8 V6 a: Z& T+ {/ U
  二、一组实验结果
/ o: a' l" B( g! ]  为了攻克这一课题,我们用代替法反复实验,在HP,IBM,多款120G硬盘的PC上,采用了不SCO 提供的大容量硬盘安装模式,在biosgeom指定参数安装Sco OpenServer 5.0.6,发现下列情况:
8 v1 q( B/ ]7 z4 D; |' H4 M  (a)在IBM、HP多款PC上安装UNIX等正常引导,但发安装OS的硬盘,拆到DELL机器上,却不能正常引导,开机显示“NO OS";7 q: ]% _  o4 f& O2 H6 c
  (b)在dell pc上安装120G的UNIX,改用大硬盘安装参数时,不能正常引导,开机显示“NO OS”,使用默认方式只能认到8G磁盘空间,浪费极大。所以我认为,Dell Optiplex Gx755 pc 应该可以支持Unix,否则8G的UNIX也不能用。
! O/ b. P" z( u9 _3 ]6 w6 E  专利购买风险机构,并且和其它的专利公司达成了协议。http
* }, k/ P: h* |/ F  三、分析原因; c" Q1 M4 H2 O
  根据上述情况,我认为关键问题出在硬盘的主引导扇区(位于整个硬盘的0磁道0柱面1扇区)上,再深入分析一下,硬盘的主引导扇区的组成为主引导记录(1BEH byte)+分区表(40H byte)+结束标志(2H byte)。8 [+ v8 B8 s7 t% s
  UNIX系统的安装程序会把硬盘参数写入主引导记录:第一次安装UNIX时,由于原硬盘上的主引导记录不是UNIX格式,安装程序会想硬盘写入UNIX格式的主引导记录;以后用缺省参数重装UNIX;如果原有主引导记录已经是UNIX格式,则安装程序不再修改主引导记录;如果采用biosgeom指定参数安装,UNIX的安装程序将重写主引导记录。
( ]- m5 B& C& u  }. U& v  默认安装UNIX时,安装程序识别硬盘最多有1024个Cylinder,当硬盘实际Cylinder数量小于1024,安装程序在主引导记录写入实际的Cylinder,Head,Sectors数(磁盘大小=cylinders x heads x sectors per track x 512);当大于1024时,安装程序在主引导记录中标记硬盘的cylinder数为1024,连同head,sectors数一起写到- ^' x6 z% _; P& \# r& O# |
  硬盘的主引导记录,这些参数表示硬盘的总容量大小,而UNIX分区大小则在分区表中定义。在UNIX引导时系统显示的Cylinder,Head,Sectors数就是从主引导记录中读取的。Dell P c引导UNIX时,如果主引导记录中的Cylinder数超过1024,将导致BIOS 引导程序无法找到操作系统,而显示“NO OS"。
2 ~, q7 |% i& h; W- N. {  四、解决方法
3 r! s! A7 e. I1 }0 ^  现在市面上的硬盘的硬盘控制器内部安装了一个地址翻译器,早已突破了1024柱面的限制,但我们在安装系统的时候还是要注意,一定要在BIOS中将硬盘设置成LBA模式。下面我们解决问题的思路是这样的,可以假设在安装了120G的UNIX的硬盘上,主引导记录换成能正常引导8G的UNIX硬盘的主引导记录,引导系统时,应该可以找到操作系统,只要机器能够引导,UNIX就能够找到的空间由分区表确定。真正有价值的东西不会轻易退出历史的舞台,Debug就是这样的经典作品之一,但到了关键时刻还得请他出马。
; \$ m& m6 w( V& Z9 s9 N  操作步骤:5 u6 d2 I& Y, a# U$ I, Z5 ^% z
  (a)安装一台可以正常引导8G UNIX的Dell Pc;
4 k% o& q# l5 j5 U: c  (b) 做一张DOS引导U盘,要带Debug.exe工具,在BIOS设置第一引导设置为USB-HDD模式(U盘制作启动盘方法参考其他文章)。
# O5 I) Q* o8 m' X  (c)在安装8G UNIX的Dell Pc上用软盘引导,进入Debug,提取硬盘的主引导记录,保存在U盘上。
; U+ O6 O! _, q6 J* s5 @( ^' h  -a 100
+ R/ U2 ]) @* h9 s9 v  CS:0100 mov ax 201
2 t" T" |6 _! ^& c  CS:0103 mov bx,200' k2 e- A+ _3 t, e4 i% X4 q
  CS:0106 mov cx,1
' T# p2 |5 V. w4 e& T8 X3 d) B) H  CS:0109 mov dx,80- O+ W9 {0 w1 Q3 k1 `
  CS:010C int 130 F( @1 f  ~3 A& B4 A) t
  CS:010E int 20
/ m" {" j2 v: O& t  CS:0110
# n( s3 J) l3 T1 M5 c; o  -g=100
6 W! R/ o2 b! Y  J# M1 ?  -rcx,
) Q8 c$ V2 u- ~$ K) E  :1be
8 x2 P$ N6 u6 I. H+ U: p  -n A:UBOOT.8G8 A0 M* n) m% O$ B; L
  -w 200
8 i9 _: R+ a8 _5 ?  Writing 1be bytes& B% P7 I2 z. g, c( E
  -q( ?3 K4 i: k, \# y9 J  m0 N
  (d)重新安装UNIX系统,在出现的boot:后面输入defbootstr biosgeom=(15665,255,63)安装过程中,选择把整个硬盘给UNIX系统。上述的15665,255,63分别表示为硬盘的C ylinders数、Heads数、sectors-per-track数,head=255:表示LBA模式。8 Q. ^$ C. K' I+ l$ ~0 ?
  (e)再次用U盘引导安装了120G UNIX的PC,用步骤三中提取的主引导记录替换现有的主引导记录。
* Y% R. X$ a8 }, b3 ^  -a 100& ~8 s( E& p9 L: i/ _
  CS:0100 mov ax 201
1 _; s9 ?6 Q8 b1 ~/ O  CS:0103 mov bx,200
( S; B2 C3 e( q& {! X2 q  `  CS:0106 mov cx,10 t: {+ I4 w7 Q  O# ^- A+ j
  CS:0109 mov dx,80# l; k8 j. K% A* X7 Q  K! G
  CS:010C int 13/ G0 W9 U4 E2 F
  CS:010E int 20
) t5 K% U  A6 ~6 l, O  CS:0110
/ J! q/ |6 S% J  B. }" ?  -g=100
  z1 K" F9 _: A& Q  b  A  -n A:UBOOT.8G
5 t0 s* r9 V% \0 h1 S  -l 200
5 k% ~+ c3 S$ w: u1 w, v; C. G  CS:0100 mov ax,301
2 n% |  ?: f3 w% P! F& p  CS:0103+ m6 n4 A; m. M
  -g=100
0 U0 D2 U; ]. E  q
5 [6 y; F1 L* X( Q( g; m& D  经过这样处理后,Dell Gx755 pc 能正常引导120G UNIX9 X. x& i- }8 _$ ^
  五、结束语
* l$ ^5 L) \# c& T8 B$ Z  (a).系统引导时,显示的柱面数为1024,实验表明,不影响使用;5 C& B- B, k. R. U/ g
  (b).进入UNIX系统,用df -v命令查看硬盘空间为110G,属于正常现象,硬盘的格式化容量比标称容量小;另外还可以用用dkinit /dev/rhd00(或rhd01)看到系统使用了所有的柱面信息。 这里hd00代表整个物理硬盘hd01代表第一个分区,在UNIX系统里硬盘是字符设备所以文件名以”r”开头。& h' d. K- ]$ X! a
  (c).按这种方法安装UNIX,主引导扇区只要一次提取,可多次使用。是个成熟稳定的解决方案;+ m3 T- Y: G. s% y1 e
  (d).另外对于硬盘参数的获取一可以把磁盘拆下来看,还可以直接用工具软件如Diskman 、PowerMax来测出其值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 10:41 , Processed in 0.223982 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表