免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1571 | 回复: 0
打印 上一主题 下一主题

MAN:fdisk [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-05 20:29 |只看该作者 |倒序浏览

               
               
               
                注: 1,为了更好理解,本文中大部分的slice没有翻,并本文中的"分区"皆指slice,即 windows下的术语Partition, 非 FreeBSD下的术语 Partition.
    2,转载请注明出处及译者(moxnet@cu)
FDISK(8)
NAME
    fdisk -- PC slice 维护工具
SYNOPSIS
    fdisk  [-BIaistu] [-b bootcode] [-1234] [disk]
    fdisk -f configfile [-itv] [disk]
PROLOGUE
    为了BIOS能引导内核, 必须遵守特定的约定.  磁盘的 0 扇区 (sector 0) 必须包含引导程序, 分区表(原文为slice table)以及魔数. slices 用来把磁盘划分为几片. BIOS引导入 0 扇区, 然后验证魔数(个人理解为启动扇区的最后两个字节内容.如果是55AA认为磁盘存在,否则认为磁盘无效--译者注). 然后 0 扇区的引导程序搜索分区表, 以探测哪个分区被标记为"active". 如果找到活动分区, 引导程序从活动分区进入陷阱. 在 DOS下, 可能有1个, 或更多分区, 同时只有一个活动分区. DOS 下的 fdisk 工具用来分割磁盘并设置活动分区.
DESCRIPTION
    FreeBSD 下的分区工具(fdisk)与 DOS 下的工具起类似的作用. 它的第一种作用就是用来显示分区表信息,或交互式的编辑分区表. 第二种作用, 读入配置文件,根据配置文件来写分区表.这种方式设计用来被其它的程序调用.
    选项:
-a    仅改变活动分区. 被忽略假如指定 -f 选项.
-b bootcode
     从 bootcode 文件中取得引导代码. 默认为 /boot/mbr
-B    重新初始化磁盘上0扇区中的引导代码. 被忽略假如指定 -f 选项.
-f configfile
     用配置文件 configfile 设置分区表. 配置文件总是配置存在的分区, 除非同时指定 -i 选项. -i 选项在读取配置文件 configfile之前删除所有存在的分区(标记为"unused"). 配置文件可以是 "-", 以从标准输入来读取配置. 查看下面的 配置文件(CONFIGURATION FILE) 一节查看详细语法.
    警告:如果使用 -f 选项时, 在写注册表时不会再让你确认是否写入(在交互式交互模式中是这样子的). 小心使用!!!
-i   初始化磁盘的 0 扇区. 包含 -u 选项, 除非指定 -f 选项.
-I    为一个 FreeBSD 分区初始化 0 扇区.
-s    打印分区表的汇总信息并退出.
-t    测试模式, 并不真正写入分区表信息. 一般与 -f 选项一起使用以查看哪些分区表信息会写入. 包含 -v 选项.
-u    刷新(编辑) 磁盘的 0 扇区. 被忽略假如指定 -f 选项.
-v    详细的. 如果指定 -f 选项, fdisk 写打印出写入磁盘的注册表信息.
-1234 仅操作单个分区.被忽略假如指定了 -f 选项.
最后的磁盘名可以仅指定 "光秃秃" 的磁盘名, 比如 da0, 或是全路径名. 假如忽略, fdisk 根据挂载的/设备偿试判断出默认的磁盘设备名.
当不加参数调用时, 打印出 0 扇区的分区表. 下面是一个例子:
   
             ******* Working on device /dev/ad0 *******
             parameters extracted from in-core disklabel are:
             cylinders=769 heads=15 sectors/track=33 (495 blks/cyl)
             parameters to be used for BIOS calculations are:
             cylinders=769 heads=15 sectors/track=33 (495 blks/cyl)
             Warning: BIOS sector numbering starts with sector 1
             Information from DOS bootblock is:
             The data for partition 1 is:
             sysid 165,(FreeBSD/NetBSD/386BSD)
                 start 495, size 380160 (185 Meg), flag 0
                     beg: cyl 1/ sector 1/ head 0;
                     end: cyl 768/ sector 33/ head 14
             The data for partition 2 is:
             sysid 164,(unknown)
                 start 378180, size 2475 (1 Meg), flag 0
                     beg: cyl 764/ sector 1/ head 0;
                     end: cyl 768/ sector 33/ head 14
             The data for partition 3 is:
            
             The data for partition 4 is:
             sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach)
                 start 380656, size 224234 (109 Meg), flag 80
                     beg: cyl 769/ sector 2/ head 0;
                     end: cyl 197/ sector 33/ head 14
这个磁盘划分了三个slices. 第二个slice 与第一个slice的末尾重叠.(用于debug目的.)
sysid            用来标记 slice. FreeBSD 使用十进制数165 (十六进制为A5).
start 和 size  以扇区为单位指定slice的开始地址和大小.
flag 80        指定为活动分区.
cyl, sector 和 head    用来指定slice的开始和结束地址.
注: 这些数字以BIOS 的磁盘几何数据(disk geometry)来计算得到, 并存储在引导块(bootblock).
-i 和 -u 标记用来指定 slice 数据会被更新. 除非同时指定 -f 选项, 否则 fdisk 会进入交互模式. 在这种模式下, 任何数据都不会被真正写入磁盘, 除非明确指定写入.
fdisk 工具会显示每个 slices ,并询问是否真的要编辑. 如果回答是(yes), fdisk 会进入下一步, 显示旧值, 并让你输入一个新值. 当设置完这个 slice 后, fdisk 会显示并询问是否设置正确. 然后会进入下一项.
得到正确的 柱面, 头 和 扇区 (cyl, sector, head) 需要技巧. 默认情况下会为你计算出来;当然你也可以自己指定它们.
当所有的slice处理后, 会让你选择选项以改变 活动分区(active slice). 最后, 当所有 0 扇区的新数据积累完成后, 会让你确认是否真的想重写数据.
-u 和 -i 的不同是 -u 仅仅编辑(刷新)磁盘上的值, 而 -i 会初始化 0 扇区; 它会设置最新的 BIOS 分区以让 FreeBSD 使用整个磁盘,并激活它.
NOTES
    自动计算开始柱面,等等, 使用了一个数字集合,这些数字描述了BIOS猜测到的磁盘的几何数据(geometry).这些数字默认取自disklabel内部(in-core disklabel), 但 fdisk 最初给你一个改变它的机会. 这样你可以创建一个引导块, 这样可以与在使用了几何数据转换(geometry translation, 如LBA---译者注)的磁盘共同工作.
假如你手工精确指定了磁盘布局, 请确保FreeBSD slice 开始与柱面边界(cylinder boundary). 下面提供的一些描述可能可以这样做.(这以后可能并不需要.)
编辑一个存在的分区极有可能导致那个分区上的所有数据丢失.
应该交互式运行 fdisk 一两次, 以看它是如何工作的.这是完全安全的, 只要你回答最后的问题的时候是否定的.有许多fdisk 探测到的但这个手册中没有解释的微妙的地方.
CONFIGURATION FILE(配置文件)
当指定 -f 选项时, 磁盘的分区表用由configfile中读取的参数来写入.配置文件的语法非常简单;每一行或者是注释,或者是指定项, 如下:
#        comment ...
                以 # 开的行是注释, 忽略执行.
g spec1 spec2 spec3
        用 slice 推定的结果来设置 BIOS 几何结构(BIOS geometry). 这儿必须指定三个值,并有一个字符前缀:
        cnum        设置cylinders的值为num
        hnum        设置heads值为num
        snum        设置sectors/track值为num
        这些值可以以任何顺序,因为字符前缀能区分出哪个数字是哪项的值.可是, 三个值都必须指定.
        这一行必须在任何其它指定分区信息的行之前.
        如果不能满足下面条件,则会发生错误:
        1
FILES
    /boot/mbr        默认引导代码
SEE ALSO
    boot0cfg(8), bsdlabel(8), newfs(8)
BUGS
    默认的引导代码并不是必须要正确处理所有的分区类型,尤其是自从MS-DOS 6.x 以来出引入的.
    整个工具应该更加用户友好.
    大部分FreeBSD的新用户不能理解slice,partition的区别,设置起来更加困难.
    不能用这个命令来完全标记一个磁盘给FreeBSD.bsdlabel(8) 用来干这个.
(完)
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11660/showart_108633.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP