1.;cd;/stand;;./sysinstall;
2.;选;partition,;进去把;sd1;割好後;(此时;partition;table;尚未写入);,;按;w;进入;wizard;mode,;键入;write;再;quit;把;partition;table;更新.;
3.;再来选;label,;进去把;sd1s1;割好,;一样按;w;进入;wizard;mode;用;write,;quit;把;disklabel;更新.;
4.;newfs;/dev/rsd1s1e;
不然的话,;拿安装片来,;进入;Partition;选项中建立新;partition,;然後按;"W"rite;写入;;再到;Label;选项中建立新的;slice,;再按;"W"rite;写入。;
这不是正统的方法,;但是却是教一般人最容易的了....;
下面将介绍如何以传统的方法来新增一颗硬盘;(或一个;partition);或修改已经存在的;partition;或;label。;当然传统的方法不一定好用,但是你应该要知道。;
0.;分割硬盘不管在什么操作系统下都是相当危险的,除非你已经驾轻就熟了,不然最好先用一颗空的硬盘来练习,以免毁掉重要资料。还有,请准备一台计算机以便计算各种资料。;
1.;首先请先阅读“硬碟分割政策”以了解;FreeBSD;新的;slice;观念。这个新的;slice;观念于;1995;年四月开始启用,跟传统的;BSD;(如;386BSD,;NetBSD,;SunOS);有很大的不同,允许多个;BSD;partition;存在。;
2.;不管你是要新增;IDE;或;SCSI;硬碟,或是只是要新增一个;partition,这些观念都是一样的,首先你要知道你想新增的硬碟的;device;名称,例如;:;IDE;第二颗硬碟的第;3;个;primary;partition;->;wd1s3;
SCSI;第三颗硬碟的第;1;个;primary;partition;->;sd2s1;
*;(以下以;sd0s2;为例,假设为;100MB);
3.;首先把硬碟挂上去,你可以用;DOS;的;pfdisk.exe;来分割新的;partition,或是以;DOS;的;fdisk.exe;割一个;primary;partition,再用;pfdisk.exe;把;partition;ID;改成;165;(十进位)。;完毕後跳看;Step-4。;
*;如果你想用;FreeBSD;的;fdisk,在进入;FreeBSD;後先以;Step-4;的方法建立;/dev/sd0s2*,再执行;fdisk;sd0;观察;sd0;的硬碟分割状况,如下范例∶(这是;1G;的;SCSI;Fireball,已经割了一个;primary;
FreeBSD;partition);
*******;Working;on;device;/dev/rsd0;*******;
parameters;extracted;from;in-core;disklabel;are:;
cylinders=1042;heads=64;sectors/track=32;(2048;blks/cyl);
Figures;below;won't;work;with;BIOS;for;partitions;not;in;cyl;1;
parameters;to;be;used;for;BIOS;calculations;are:;
cylinders=1042;heads=64;sectors/track=32;(2048;blks/cyl);
Warning:;BIOS;sector;numbering;starts;with;sector;1;
Information;from;DOS;bootblock;is:;
The;data;for;partition;0;is:;
sysid;165,(FreeBSD/NetBSD/386BSD);
start;32,;size;614368;(299;Meg),;flag;80;
beg:;cyl;0/;sector;1/;head;1
end:;cyl;299/;sector;32/;head;63;
The;data;for;partition;1;is:;<<<---;欲新建於此;!!!;
^^^^^^^^^^^^;
The;data;for;partition;2;is:;
The;data;for;partition;3;is:;
再来就要开始分割了,键入;fdisk;-i;sd0,首先它会问你硬碟的参数,如∶;
*******;Working;on;device;/dev/rsd0;*******;
parameters;extracted;from;in-core;disklabel;are:;
cylinders=1042;heads=64;sectors/track=32;(2048;blks/cyl);
Figures;below;won't;work;with;BIOS;for;partitions;not;in;cyl;1;
parameters;to;be;used;for;BIOS;calculations;are:;
cylinders=1042;heads=64;sectors/track=32;(2048;blks/cyl);
Do;you;want;to;change;our;idea;of;what;BIOS;thinks;?;[n];
如果有错误;(注意∶你必须非常;解各种;translation;的数据),不然不需要修改,直接回答;n;或按;Enter;跳过。;(在本范例中,这颗;Fireball;没有经过;SCSI;Translate,所以数据为;cyl=1042,;heads=64,;sec/track=32);
再来它会依次问你;primary;1,2,3,4;的分割状况,根据你的情形回答,不改变的回答;n,要改变的回答y。比方说,第二个;primary;partition;(在;FreeBSD;中为;partition;1,;由零开始);是空的,你想建立成;FreeBSD;partition,你应该会看到∶;
The;data;for;partition;1;is:;
Do;you;want;to;change;it?;[n];
这时候回答;y,再来它会问你∶;
Supply;a;decimal;value;for;"sysid";[0];
请回答;165,这是;UFS;的;partition;ID。;接下来是此;partition;的开始位址∶;
Supply;a;decimal;value;for;"start";[0];
由於此范例中新增的;partition;是从第;300MB;开始,大小为742MB,;因此;start;应为;300*2048;=;614400。;你要是不会算的话,把前面已经存在的;partition;资料加起来,如∶;
partition;0:;start;32,;size;614368;(299;Meg),;flag;80;
start+size;(32+614368);就是罗!;
要是你是从该硬碟的最前面开始,start;请回答;"32";!!;注意∶不是;0;!!;因为要预留一些空间给;MBR;之类的。;
再来它会问你该;partition;的大小,如∶;
Supply;a;decimal;value;for;"size";[0];
请回答;MB*2048,如此范例为;742*2048;=;1519616。;
再来它会问你是否要明确的定义从那个;cyl;的那个;head;开始∶;
Explicitly;specifiy;beg/end;address;?;[n];
这除了超人以外,是没有必要去名确定义的。就回答;n;就好了。;
然後它会把这个新建的;partition;资料印出来,如∶;
sysid;165,(FreeBSD/NetBSD/386BSD);
start;614400,;size;1519616;(742;Meg),;flag;0;
beg:;cyl;300/;sector;1/;head;0
end:;cyl;17/;sector;32/;head;63;
Are;we;happy;with;this;entry?;[n];
如果你确定无误後,回答;y;继续。;
然後它会继续问你後面剩下的;partition;是否要更动,如果没有的话就一路回答;n;到所有的;partition;完。;然後它会问你是否要改变;active;的;partition,如∶;
Do;you;want;to;change;the;active;partition?;[n];
如果不是开机用的;partition;就不要更动了。;
最後它会确定你要不要更动;partition;table,如∶;
Should;we;write;new;partition;table?;[n];
确定的话,复颂一遍大榔头的名言∶;"Trust;me,;I;know;what;I;am;doing;!";再回答;y。;
後悔的话回答;n;或按;Ctrl-C;都可以,你的;partition;table;就不会被更动。;
4.;建立新的;device;nodes;∶;
cd;/dev;
./MAKEDEV;sd0;
./MAKEDEV;sd0s1a;
这样会在;/dev;下建立出;sd0s1a,;sd0s1b,;sd0s1c,;...;,sd0s1h;
5.;构思好你的;slice;分割情形,例如;sd0s1;是;300MB;大小,你想要把一开始的;30MB;割给;/tmp,把再来的;64MB;割给;swap,;在把最後的;206MB;给;/home。;当然在分割的时候你只要分两种情形,是FileSystem;或是;Swap,;要;mount;到那里是;/etc/fstab;中定义的。;
6.;建立一个空的;disklabel;
$;disklabel;-r;-w;sd0s1;auto;
7.;执行;disklabel;-e;sd0s1;你应该会看到∶;
#;/dev/rsd0s1c:;
type:;SCSI;
disk:;sd0s1;
label:;
flags:;
bytes/sector:;512;
sectors/track:;32;
tracks/cylinder:;64;
sectors/cylinder:;2048;
cylinders:;299;
sectors/unit:;614368;
rpm:;3600;
interleave:;1;
trackskew:;0;
cylinderskew:;0;
headswitch:;0;#;milliseconds;
track-to-track;seek:;0;#;milliseconds;
drivedata:;0;
8;partitions:;
#;size;offset;fstype;[fsize;bsize;bps/cpg];
c:;614368;0;unused;0;0;#;(Cyl.;0;-;299*);
其中你只需要修改最後那些;label;的资料就好了,其他的资料是为了跟旧的;BSD;label;相容而遗留的。除非你有特殊需要;(如改变;disk;geometry);,不然不要去更动。;
由於这是新增的;slice,其中只有;c:;一个分割区,此;c:;代表整个;slice;的大小;(300MB)。;
如果你先读过;Step-1;的资料,你应该知道;a:;通常是给;root;区用的,;b:;通常是给;swap;用的,c:;强制代表该;slice;的大小,d:原先代表整颗硬碟的大小,不过新的;slice;已经把;d:;废除了,e:;-;h:;是随便你的。;其实从;a:;-;h:;只有;c:;是强制性的,其他随便你要拿来做;FS;或是;swap。;不过为了维护传统,一般还是喜欢把;a:;留给;root;partition,把;b:;留给;swap,其他的;FS;由;e:;开始到;h:。;
所以在这个;300MB;的;slice,我们想把;b:;割;64MB;给;swap,把;e:;割30MB;给;/tmp,把;f:;割;206MB;给;/home。;在你的编辑器中键入∶;
8;partitions:;
#;size;offset;fstype;[fsize;bsize;bps/cpg];
b:;131072;61440;swap;<<--;新增;
c:;614368;0;unused;0;0;
e:;61440;0;4.2BSD;0;0;0;<<--;新增;
f:;421856;192512;4.2BSD;0;0;0;<<--;新增;
其中最前面为;e:(30MB),再来是;b:(64MB),最後是;f:(206MB)。所以∶;
e:;的;offset;(就是;start;offset);是;0;(由该;slice;的头开始),;
e:;的;size;是;30MB*2048=61440。;(e:;实际上位於;0;-;614399);
b:;的;offset;是;61440;(e:;的;offset+size),size;是;64MB*2048=131072;
b:;实际上位於;61440;-;192511;
f:;的;offset;是;192512;(b:;的;offset+size),要注意的是,为了;slice;alignment;的关系,c:;不见得是;(整个;slice;的大小;*;2048),所以在;slice;中最後一个区块大小通常不会是;(预定的大小;*;2048)。;
因此最後一个区块的大小要用;(c:;的;size;-;最後一个区块的;offset);!!;
在此范例中是;614368-192512=421856。;
ftype;如果是;swap;请键入;swap,如果是一般的;FS,请键入;4.2BSD。;
在算这些资料的时候,要注意不要有区块彼此覆盖到的情形,不然就只有等著;crash;and;lost;data;了。;
完成後用你编辑器的;save;功能存档,要是有显而易见的错误,disklabel;要你再修改。;
然後用;disklabel;-r;sd0s1;看看新建的;label,如下∶;
8;partitions:;
#;size;offset;fstype;[fsize;bsize;bps/cpg];
b:;131072;61440;swap;#;(Cyl.;30;-;93);
c:;614368;0;unused;0;0;#;(Cyl.;0;-;299*);
e:;61440;0;4.2BSD;0;0;0;#;(Cyl.;0;-;29);
f:;421856;192512;4.2BSD;0;0;0;#;(Cyl.;94;-;299*);
现在多出最右边;(#;Cyl);的资料,你可以看看有没有覆盖到的地方。;
8.;一切;OK;後,恭禧您,大风大浪已经过了,最後只剩两个步骤。;
#;newfs;/dev/rsd1s1e;
#;newfs;/dev/rsd1s1f;
swap;不需要格式化,;在;newfs;的时候你可以加入参数,来达到特殊需求。;
如;-m;0;设定预留的空间为;0,不然内定;7%;的大小预留给;root;及避免;fragmentation;使用。;
如;-i;1024;设定每;1024;bytes;给一个;inode;(内定;2048),通常;BBS;跟;News;Server;须要较多的;inodes。;
9.;执行;fsck;-y;/dev/rsd0s1e;;fsck;-y;/dev/rsd0s1f;检查看看有没有错误。;
A.;执行;mount;/dev/sd0s1e;/mnt;;ls;-la;/mnt;看看能不能用。;
B.;最後把新增的;/dev/sd0s1b;/dev/sd0s1e;/dev/sd0s1f;加入;/etc/fstab,;mkdir;新的;mount;point,执行;mount;-a;-t;ufs;或是;reboot,一切就大功告成了。;
综合使用这个传统方法和前面的快捷方法,相信分割硬盘不是很难的一件事。
标签: 硬盘