Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520039
  • 博文数量: 174
  • 博客积分: 4377
  • 博客等级: 上校
  • 技术积分: 1933
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-31 22:40
文章分类

全部博文(174)

文章存档

2013年(15)

2012年(25)

2011年(40)

2010年(94)

分类: BSD

2010-04-19 16:14:12

可随意转载,请尊重我的劳动,注明出处。不得商业用。
欢迎有共同兴趣的同志联系我,邮箱ZHL98040011@hotmail.com
欢迎大家接着翻译,互相帮助嘛。太累了。休息下

关于label的翻译,从网上搜了以下,感觉“卷标”更合适,改之。
----------2010.4.20修改


OpenBSD FAQ:

-------------------------------------
14-磁盘的安装
-------------------------------------

14.1-磁盘和分区
---------------
在OpenBSD中,安装磁盘的细节根据所在平台不同而有所变化,安装前请查阅你所用平台的INSTALL.文件,获取安装所需细节。

fdisk(8),disklabel(8)还有一些其它的工具软件允许你对第一个SCSI磁盘驱动器使用"sd0"这样的简略语法,还有对第一个IDE磁盘驱动器使用"wd0"。工具软件会自动把它展开以对应正确的设备。

由于历史的原因,在UNIX的世界中"Partition"经常被用于表示两个完全不同的意义,这导致了一些概念的混淆。一开始,"partition"在操作系统范畴内被定义,用于在磁盘中区分不同的文件系统.后来,在一些平台中,比如i386,这个词被重新用来定义分区表("Partition Table")中的“分区”,在日常使用中这个新的定义几乎取代了原来老的定义.

这两个不同类型的所谓"partition"是:

*disklabel(8)创建的"disklabel partitions"(常常被称为"文件系统分区"或者"卷标分区").
*fdisk(8)创建的"fdisk partitions"(常常被称为"分区表分区"或者"主引导记录(MBR)分区").

所有的OpenBSD平台使用disklabel(8)作为管理OpenBSD文件系统分区的主要工具,但还有另外一些平台使用fdisk(8)来管理分区表.


14.2-使用fdisk(8)
-----------------
首先请阅读fdisk(8)的手册页.

在一些平台中(i386, amd64, macppc, zaurus and armish),fdisk(8)被用于创建系统引导ROM需要的分区,disklabel 创建的分区被放置于在fdisk创建分区中.其它的平台不需要或者不使用fdisk(8)。fdisk(8)也能用于对MBR的操作,这会影响到计算机上的所有操作系统。与其它操作系统的类似程序不同,OpenBSD的fdisk假定你知道想做什么,在大多数情况下它可以让你做所有你想做的,这让它成为一款强大的工具。它也会让你做本不应该做的事(译者注:就是误操作啦),因此,请谨慎小心的使用它。

正常情况下,在硬盘上只有一个OpenBSD fdisk partition 。这个分区将会被disklabel再分成几个OpenBSD文件系统分区。

使用fdisk查看你的分区表,如下:

# fdisk sd0

就会得到一个类似的输出:

Disk: sd0       geometry: 553/255/63 [8883945 Sectors]
Offset: 0       Signature: 0xAA55
         Starting       Ending       LBA Info:
 #: id    C   H  S -    C   H  S [       start:      size   ]
------------------------------------------------------------------------
*0: A6    3   0  1 -  552 254 63 [       48195:     8835750 ] OpenBSD    
 1: 12    0   1  1 -    2 254 63 [          63:       48132 ] Compaq Diag.
 2: 00    0   0  0 -    0   0  0 [           0:           0 ] unused     
 3: 00    0   0  0 -    0   0  0 [           0:           0 ] unused 


在这个例子中,我们看看fdisk输出的SCSI硬盘驱动器信息。可以看到包含的OpenBSD分区(类型:A6)还有它的大小。"*"号告诉我们,这个分区是引导分区。

上面的例子中,我们只是看了输出的信息。如果我们想要编辑分区表我们该做什么呢?ok,我们需要使用-e参数。这让fdisk进入交互式模式:

# fdisk -e wd0
Enter 'help' for information
fdisk: 1> help
        help            Command help list
        manual          Show entire OpenBSD man page for fdisk
        reinit          Re-initialize loaded MBR (to defaults)
        setpid          Set the identifier of a given table entry
        disk            Edit current drive stats
        edit            Edit given table entry
        flag            Flag given table entry as bootable
        update          Update machine code in loaded MBR
        select          Select extended partition table entry MBR
        swap            Swap two partition entries
        print           Print loaded MBR partition table
        write           Write loaded MBR to disk
        exit            Exit edit of current MBR, without saving changes
        quit            Quit edit of current MBR, saving current changes
        abort           Abort program without saving current changes
fdisk: 1>

当你对fdisk使用-e参数时,下面是你能使用的命令的概述。

*help   显示fdisk在交互模式中能接受的命令列表
*reinit   初始化当前选择的、在内存中的引导块信息。这是一个快速处理整个磁盘的方法,为OpenBSD使用整个磁盘建立分区,更新启动代码,通常来说,就是让系统准备好安装OpenBSD(只为安装OpenBSD做准备!)。
*disk   显示fdisk探测过的这个磁盘驱动器的各项参数。如果你希望的话可以修改它。
*setpid   设置分区表项的识别id。这个命令在分配一个分区给OpenBSD时很有用。
*edit   编辑当前引导块数据在内存中的拷贝。你可以使用BIOS几何模式编辑,也可以使用扇区偏移量+大小的模式进行编辑。
*flag   标志指定的分区为引导分区。只能有一个分区可引导。如果你希望从扩展分区进行引导,你需要把扩展分区所在分区标志位引导分区。
OpenBSD本身只能从主分区被引导,但是你能把任何分区标志位引导分区。)
*update   当前引导块数据在内存中有一个拷贝,更新它的机器码
*select   选择并把当前扩展分区表项的引导块数据加载到内存中
*swap   交换两个MBR表项,这样你能对MBR进行再排序
*print   把当前在内存中的引导块数据和MBR表打到显示器上
*write   把在内存中的引导块数据写到硬盘上。这一步会提示你进行确认。
*exit   退出当前fdisk的所在级别,这样就会返回前面被选中的引导块在内存中的拷贝,如果没有拷贝那么退出程序。
*quit 退出当前fdisk交互模式,同上,但是不向磁盘写入修改后的数据。
*abort 退出程序不保存当前改变的数据。


fdisk 的小技巧和小提示:
*fdisk(8)提供了两种方式来分区,“指定原始扇区”和“C/H/S(柱面/磁头/扇区)”两种方式。各自有不同的适用场合,能让工作变得更容易。
*一个全新的硬盘在能够引导前需要MBR代码,你可以使用“reinit”或者“update”来写入它。如果你失败了,你可以使用fdisk为磁盘生成一个有效的分区表,但不能使它成为可引导磁盘。如果你对原有的引导代码不太确定的话,你也许非常希望对已经存在的引导代码进行update。
*如果你的系统有一个处于“维护”或者“诊断”状态的分区,建议你不要动它,或者在安装OpenBSD前对这个分区进行需要的操作。
*由于历史的原因,“q”保存修改结果而“x”直接退出不保留。这与很多人现在在其它环境中习惯的操作正相反。fdisk(8)不会在保存修改结果前提示你,请谨慎使用!!!


14.3-使用OpenBSD的disklabel(8)
-------------------------------

disklabel(8)是什么?
-------------

首先,请仔细阅读disklabel(8)的手册。

对于OpenBSD来说,不同的平台磁盘的安装有所不同。对于i386,amd64,macppc,zaurus,和armish,磁盘设置分两步。首先,磁盘上的OpenBSD分片是使用fdisk(8)定义的,然后再用disklabel(8)将此分片划分为一个个的OpenBSD分区。(译者注:分片中包含分区。)

所有的OpenBSD平台都使用disklabel(8)作为主要手段来管理OpenBSD类型分区。都使用fdisk(8)来把disklabel(8)的分区放置到一个fdisk分区中。

磁盘卷标保存了关于你的磁盘的一些信息,比如你的磁盘的C/H/S几何信息,文件系统的一些信息。还包含了关于磁盘本身的一些信息,比如转速,interleave等等,由于历史的原因,这些信息可能会有误,但对此不必担心。磁盘卷标通常被引导程序用来访问磁盘驱动器,以获取文件系统在磁盘上的所在位置。请阅读disklabel(8)的手册以获取关于它的进一步信息。

在一些平台上,disklabel能帮助解决一些由于体系结构所带来的关于磁盘分区的限制。比如:在i386平台上,你可以有4个主分区,但是使用disklabel(8),你可以使用一个主分区来包含所有你的OpenBSD分区(例如:swap、/,/var,/usr等等),这样你还可以有三个主分区可以用于其它操作系统。


在OpenBSD安装过程中使用disklabel(8)。
-------------

安装过程中的重要一步就是磁盘卷标的创建。在安装期间,使用disklabel(8)来创建安装OpenBSD所需的各个分区。作为安装过程中,你可以使用disklabel(8)来定义挂接点,但是你还可以在安装过程中,或者安装后再对其进行修改。

对于给磁盘指定卷标没有一个所谓的“正确”的办法,但是又很多错误的可能性存在。在尝试给你的磁盘指定卷标前,请看看这篇文章,有关于怎样分区和怎样决定分区大小的讨论()。

在安装OpenBSD期间使用disklabel,请参见安装指南的磁盘安装一节(Setting up disks  part of the Installation Guide. )。

安装系统后使用disklabel(8)
-------------

在安装后,使用disklabel很多情况下是想了解磁盘的分区状况。下面的命令将会显示你当前的状况,但并不修改它。

# disklabel wd0 <-- 或者是任何你想查看的磁盘
# Inside MBR partition 3: 分区类型A6 开始扇区63 大小29880837
# /dev/rwd0c:
type: ESDI
disk: ESDI/IDE disk
label: Maxtor 51536H2
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total sectors: 29888820
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0

16 partitions:
#             size        offset  fstype [fsize bsize  cpg]
  a:        614817            63  4.2BSD   2048 16384  328 # Cyl     0*-   609
  b:        409248        614880    swap                   # Cyl   610 -  1015
  c:      29888820             0  unused      0     0      # Cyl     0 - 29651*
  d:       6291936       1024128  4.2BSD   2048 16384  328 # Cyl  1016 -  7257
  e:        409248       7316064  4.2BSD   2048 16384  328 # Cyl  7258 -  7663
  f:       1024128       9822960  4.2BSD   2048 16384  328 # Cyl  9745 - 10760
  h:       2097648       7725312  4.2BSD   2048 16384  328 # Cyl  7664 -  9744

请注意这个磁盘只有一部分空间被分配使用了。disklabel提供了两种模式来修改磁盘卷标,一种是内建的命令模式(就是你在安装openBSD时使用的那种模式),还有一种是全屏编辑模式,就像vi(1)。你可能发现命令模式更容易些,因为它会在每一步对你进行引导,并对你的请求提供帮助,但是全屏编辑也同样好用的。

让我们给上面的系统增加一个分区。

警告:当你使用disklabel的时候,记住,磁盘上的数据都可能会有危险。当你运行disklabel之前请确保数据已经备份了。

我们将会使用内建的命令模式,请使用disklabel -E运行.
# disklabel -E wd0
...
> a k
offset: [10847088]
size: [19033812] 2g
Rounding to nearest cylinder: 4194288
FS type: [4.2BSD]
> p m
device: /dev/rwd0c
type: ESDI
disk: ESDI/IDE disk
label: Maxtor 51536H2
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total bytes: 14594.2M
free bytes: 7245.9M
rpm: 3600

16 partitions:
#             size        offset  fstype [fsize bsize  cpg]
  a:        300.2M          0.0M  4.2BSD   2048 16384  328 # Cyl     0*-   609
  b:        199.8M        300.2M    swap                   # Cyl   610 -  1015
  c:      14594.2M          0.0M  unused      0     0      # Cyl     0 - 29651*
  d:       3072.2M        500.1M  4.2BSD   2048 16384  328 # Cyl  1016 -  7257
  e:        199.8M       3572.3M  4.2BSD   2048 16384  328 # Cyl  7258 -  7663
  f:        500.1M       4796.4M  4.2BSD   2048 16384  328 # Cyl  9745 - 10760
  h:       1024.2M       3772.1M  4.2BSD   2048 16384  328 # Cyl  7664 -  9744
  k:       2048.0M       5296.4M  4.2BSD   2048 16384   16 # Cyl 10761 - 14921
> q
Write new label?: [y]
在刚刚的情况中,disklabel(8)能为你计算出分区的起始偏移量。在其它许多情况下,它也能这么做,但是如果你在磁盘卷标中有“漏洞”(比如,你删除过分区,或者你想让自己过的悲惨些。)你可能需要坐下来,拿起纸笔计算好正确的偏移量。注意,虽然disklabel(8)会做一些检查,但是很可能它做的是错误的。小心点,一定要明确的知道你键入的每一个数字的含义。

在大多数OpenBSD平台上,有16个磁盘卷标可用,从“a”到“p”。(一些特定的系统可能只有8个卷标)。每个磁盘卷标应该有一个‘c’分区,文件系统类型为“unused”,它覆盖了整个物理驱动器。如果你的磁盘卷标不是这样的,你必须对其进行修复,参数 “D”会对你有所帮助。对于‘c’分区,除了你想访问原始扇区外,不要在任何时候使用它,也不要尝试在‘c’上尝试建立文件系统。在引导设备上,‘a’被保留给引导分区,‘b’是交换分区,但是只有引导设备才有这些说法。其它磁盘可以使用除了‘c’之外的所有15 个分区。

disklabel 使用技巧
------------------------
*   怎样得到帮助:  在命令模式中,"?"将会打印一个可用命令列表。"M"将会显示disklabel(8)的手册页。
*   重置为默认状态: 在一些情况下,你可能希望把磁盘回复到原始状态,并删除所有磁盘卷标信息。"D"命令将会把卷标重置为默认状态,好像磁盘根本就没有过磁盘卷标一样。
*   复制磁盘卷标:   在一些情况下,你可能希望把磁盘的分区信息复制到另一个磁盘上去,但是情况会有不同(比如,你希望有相同的分区,但是两个磁盘的容量却不同)。使用“-e” (disklabel(8)的全屏编辑模式)来获取源磁盘的分区情况,然后复制到目标磁盘上,删除源盘的'c'分区,保存,这样你就把磁盘的基本信息复制到其它驱动器上去了,而且没有改变基本参数。
*   (sparc/sparc64):   千万不要把swap放在磁盘的开始区域。
*   (i386/amd64)让第一磁道空闲不用:   在一些平台上,不论用disklabel(8)还是fdisk(8),都要让第一逻辑磁道保持空闲不用。这条指导意见有些时候会造成这样一种现象“磁盘从第63扇区开始”,这只有在你的硬件恰好是每磁道63扇区的时候才成立。disklabel将会告诉你它探测到的每磁道有多少扇区的信息。除了在OpenBSD中,其它平台上磁盘分区总是从0扇区开始的。
*   没有磁盘卷标的设备:  如果一个磁盘没有OpenBSD的磁盘卷标,但是有另一个文件系统(比如,原来有FAT32文件系统),OpenBSD的内核会为其在磁盘上创建一个磁盘卷标。然而,如果先有一个磁盘卷标被创建并被保存到磁盘上了,对于后来添加的非OpenBSD文件系统,其磁盘卷标将不会自动被更新。如果你希望OpenBSD能访问这个文件系统的话,你必须自己手动来做。更多信息,请参见下面的14.16.1 。
*   "q"vs"x":由于历史的原因,当处于命令模式时,"q"保存操作结果并退出此程序,"x"退出程序但是不保存结果。这与很多人在其它的环境中习惯有所不同。disklabel(8)在保存前会提出警告,但使用"x"会直接退出。


-------------------------------------
OpenBSD fdisk 手册
-------------------------------------
名称:
     fdisk--MBR分区维护程序
概要:
     fdisk [-ieuy] [-c cylinders -h heads -s sectors] [-f mbrfile] device
描述:
     在i386及其它平台上,可引导磁盘的0扇区上必须包含MBR引导代码,MBR分区表包含4个条目,还有一个幻数(0xAA55)。

     在i386平台上,BIOS把磁盘的0扇区加载到内存中,并检测其中的幻数,然后从第一个字节开始执行MBR引导程序。MBR引导程序在MBR分区表中搜索活动分区标志(在fdisk输出中,用*在第一列标出),如果发现了,那么由磁盘的引导程序切换到加载活动分区的引导程序。
     一些其它的平台构架中(像zaurus),磁盘的0扇区包含MBR分区表,但是没有使用它的引导代码。

命令参数如下:

-c cylinders -h heads -s sectors
指定BIOS几何参数给fdisk。默认情况下,磁盘容量的大小计算使用的是启发式方法。这些chs数字是由核心的disklabel提供的,或者是/boot传递给内核的值。

-e 进入fdisk交互模式来修改MBR分区表。这个编辑器允许配置MBR分区,就想配置扩展MBR分区一样。详情请参考下面的“命令模式”一节。
   
-f MBR文件
指定一个MBR文件。默认文件是/usr/mdec/mbr。

-i 请求MBR重新初始化分区数据。在这种模式下,fdisk将会使用默认MBR文件/usr/mdec/mbr(或者是-f参数指定的mbr文件)覆盖掉主MBR引导代码和MBR分区表。在默认的MBR模版中,第三分区将会被配置为OpenBSD分区,从0柱面,1磁头,1扇区直到磁盘结束。这种模式是用来在第一次时初始化MBR。

-u 更新MBR引导代码,保留现存的MBR分区表。MBR引导代码从偏移位置0x000一直到位于0x1BE的MBR分区表开始处。除了保留已存在的MBR分区表外,这与-i参数很相似。这对在已经在使用的磁盘上写入新MBR引导代码很有用(缺少MBR相关背景知识,个人没太看懂这条)。

-y 不再询问 yes/no。

阅读(1283) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~