中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » 转:Linux硬盘分区知识简介
作者:
标题: 转:Linux硬盘分区知识简介 上一主题 | 下一主题
yaoyao1220
初级用户





积分 95
发帖 66
注册 2010-8-9
状态 离线
『楼 主』:  转:Linux硬盘分区知识简介

作者:贝壳汉姆   出处:IT实验室系统管理   


  Linux系统可以挂载多个不同接口类型的磁盘(disk),每一个磁盘又可以分成若干个分区(Partition),每个分区又可以拥有自己的文件系统类型(FileSystem)。Linux对于磁盘和分区又自己的一套标记方法。
  硬盘和分区的区分
  第一个SCSI(Small Computer System Interface)磁盘记为/dev/sda,第二个SCSI磁盘记为/dev/sdb;第一个SATA磁盘记为/dev/hda,第二个为/dev/hdb,以此类推。Linux系统中,每一个磁盘的各个分区编号是从1开始的,例如,第一个SCSI磁盘的第一个分区为/dev/sda1,第二分区为/dev/sda2。
  分区结构
  一块没有分过区的硬盘(RAW)就像一块荒蛮的土地,是没有有意义数据的。分好区的硬盘就会具有一定的结构性。分区就是将硬盘分为一定的区域,便于使用。 一块硬盘最多可以分四个区(主分区)。无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录MBR)。
  主引导记录由三部分组成:开始是446B的操作系统引导代码,紧接着是64byte的主分区表。主分区表最多记录四个主分区的分区信息,主要包括该分区的起始/结束柱面、大小、类型等信息。每个分区记录占用16B。分区就是修改分区表,它不影响硬盘上的存储的数据。最后是2字节的结束标志0×55AA(01010101 10101010)。
  扩展技术:由于分区表只能包含最多4个分区记录,如果需要将一块硬盘分成超过5个以上的分区,就需要将最多四个主分区中的一个分区类型改为扩展分区,然后在扩展分区中再建逻辑分区。逻辑分区的分区信息保存在扩展分区之中,叫做扩展分区表。理论上逻辑分区没有个数的限制。扩展分区不能被直接使用,必须将其划分为若干个逻辑分区。逻辑分区的起始位置的信息都写在扩展分区表里面。逻辑分区的分区编号从5开始,如:/dev/sda5是第一块硬盘的第一个逻辑分区。
  格式化
  其实,格式化就是为某个分区建立起某种类型的文件系统。没有文件系统的分区是不能被操作系统使用,也就无法写入有意义的数据的。文件系统的存在,就是为了让操作系统在一块硬盘的分区内有组织、有纪律的写入和保存数据,当然还得原样地读出数据。
  为一个分区建立文件系统的时候,该分区原有的数据就会被抹杀,想要恢复数据就很难了。尤其,当格式化过的分区被重新写入过数据时,恢复先前的数据就变得不可能了。
  分区工具的使用
  Linux环境下,主要有两个着名的分区管理工具fdisk和parted,本人经常使用的是fdisk。至于parted,可能更灵活,且支持非交互模式,你可以查看相应的man。下面简单介绍下fdisk,详细介绍还请您亲自man之。
  fdisk使用范例
  列出各磁盘的结构及分区表信息:
  ivan@ivan-desktop:~$ sudo fdisk -l
  [sudo] password for ivan:
  Disk /dev/sda: 160.0 GB, 160041885696 bytes
  255 heads, 63 sectors/track, 19457 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Disk identifier: 0x0003ce53
  Device Boot      Start         End      Blocks   Id  System
  /dev/sda1   *           1        3825    30720000    7  HPFS/NTFS
  /dev/sda2            3825        7650    30720000    7  HPFS/NTFS
  /dev/sda3            7650       11474    30720000    7  HPFS/NTFS
  /dev/sda4           11475       19457    64123447+   5  Extended
  /dev/sda5           11475       14444    23856472+   7  HPFS/NTFS
  /dev/sda6           19247       19457     1694826   82  Linux swap / Solaris
  /dev/sda7           14445       15660     9767488+  83  Linux
  /dev/sda8           15661       19246    28804513+  83  Linux
  Partition table entries are not in disk order
  Disk /dev/sdb: 80.0 GB, 80026361856 bytes
  255 heads, 63 sectors/track, 9729 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Disk identifier: 0x3571e2ec
  Device Boot      Start         End      Blocks   Id  System
  /dev/sdb1   *           1        9729    78148161    7  HPFS/NTFS
  ivan@ivan-desktop:~$
分区示例:
  ivan@ivan-desktop:~$ sudo fdisk /dev/sda
  The number of cylinders for this disk is set to 19457.
  There is nothing wrong with that, but this is larger than 1024,
  and could in certain setups cause problems with:
  1) software that runs at boot time (e.g., old versions of LILO)
  2) booting and partitioning software from other OSs
  (e.g., DOS FDISK, OS/2 FDISK)
  Command (m for help): m #帮助
  Command action
  a   toggle a bootable flag
  b   edit bsd disklabel
  c   toggle the dos compatibility flag
  d   delete a partition
  l   list known partition types
  m   print this menu
  n   add a new partition
  o   create a new empty DOS partition table
  p   print the partition table
  q   quit without saving changes
  s   create a new empty Sun disklabel
  t   change a partition's system id
  u   change display/entry units
  v   verify the partition table
  w   write table to disk and exit
  x   extra functionality (experts only)
  Command (m for help): d #删除分区
  Partition number (1-8): 2
  Command (m for help): p # 打印分区表
  Disk /dev/sda: 160.0 GB, 160041885696 bytes
  255 heads, 63 sectors/track, 19457 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Disk identifier: 0x0003ce53
  Device Boot      Start         End      Blocks   Id  System
  /dev/sda1   *           1        3825    30720000    7  HPFS/NTFS
  /dev/sda3            7650       11474    30720000    7  HPFS/NTFS
  /dev/sda4           11475       19457    64123447+   5  Extended
  /dev/sda5           11475       14444    23856472+   7  HPFS/NTFS
  /dev/sda6           19247       19457     1694826   82  Linux swap / Solaris
  /dev/sda7           14445       15660     9767488+  83  Linux
  /dev/sda8           15661       19246    28804513+  83  Linux
  Partition table entries are not in disk order
  Command (m for help): n #建立新分区
  Command action
  l   logical (5 or over)
  p   primary partition (1-4)
  p #主分区
  Selected partition 2
  First cylinder (3825-19457, default 3825): #开始柱面
  Using default value 3825
  Last cylinder, +cylinders or +size{K,M,G} (3825-7649, default 7649): #结束柱面
  Using default value 7649
  Command (m for help):
  MBR的备份与恢复
  MBR的损坏,对于计算机用户来说,无疑是致命性的打击,本人就曾多次遭遇过这种打击。MBR一旦损坏,意味着系统无法正常引导,分区表被破坏,以致于数据的大量丢失。为了减轻这种灾难所带来的损失,备份MBR是值得的。我们已经知道,MBR就是一块硬盘的第一个扇区的那512字节,它的结构也已经清楚了。在LInux环境下,备份MBR是一件相当简单的事情,只需要一条指令就搞定了。
  dd if=/dev/sda of=~/MBR_`date +%F` bs=512 count=1 #需要root权限
  这样,sda的MBR就被写入用户目录下MBR_2010-03-17这样的文件中,执行ls -l可以看到,该文件大小为512B。
  MBR损坏时,恢复也同样简单:
  dd if=~/MBR_* of=/dev/sda bs=512 count=1 #同样需要root权限
  这样的MBR备份和恢复方法,还给我们带来了额外的惊喜。出于某种原因,我们可能需要在Win + LInux的机器上重新安装Windows,这样一来,MBR中的grub(或者LILO)就会被Windows的引导记录给覆盖掉,Linux系统就无法正常启动了。解决这一问题的方法有很多,但备份MBR这一招实在是简单又方便,你不妨试试看。

[ Last edited by yaoyao1220 on 2010-11-6 at 17:58 ]



淘宝网址:http://shop62365712.taobao/
客服QQ:859230308,859096898
2010-11-6 17:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: