免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: liyihongcug
打印 上一主题 下一主题

深入理解硬盘的 Linux 分区 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-09-12 17:00 |只看该作者
本帖最后由 liyihongcug 于 2011-09-12 17:08 编辑

http://www.ylmf.net/linux/tips/2010112411301.html

创建了逻辑盘还没有创建逻辑分区呢,也没有创建文件系统,然后再执行一下:fdisk /dev/sdc

  Command (m for help): n

  Command action

  l logical (5 or over)

  p primary partition (1-4)

  l

  First cylinder (1-2610, default 1):

  Using default value 1

  Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610):

  Using default value 2610

  Command (m for help): w

  The partition table has been altered!

  Calling ioctl() to re-read partition table.

  Syncing disks.

  再查看一下

  [root@192.168.14.117:/root]#fdisk -l

  Disk /dev/sda: 21.4 GB, 21474836480 bytes

  255 heads, 63 sectors/track, 2610 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 * 1 33 265041 83 Linux

  /dev/sda2 34 294 2096482+ 82 Linux swap / Solaris

  /dev/sda3 295 2610 18603270 83 Linux

  Disk /dev/sdb: 32.2 GB, 32212254720 bytes

  255 heads, 63 sectors/track, 3916 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdb3 1 3916 31455238+ 83 Linux

  Disk /dev/sdc: 21.4 GB, 21474836480 bytes

  255 heads, 63 sectors/track, 2610 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdc1 1 2610 20964793+ 5 Extended

  /dev/sdc5 1 2610 20964762 83 Linux

  很好,一切正常

  4、创建文件系统

  执行mkfs.ext3 /dev/sdc5

  mke2fs 1.39 (29-May-2006)

  Filesystem label=

  OS type: Linux

  Block size=4096 (log=2)

  Fragment size=4096 (log=2)

  2621440 inodes, 5241190 blocks

  262059 blocks (5.00%) reserved for the super user

  First data block=0

  Maximum filesystem blocks=0

  160 block groups

  32768 blocks per group, 32768 fragments per group

  16384 inodes per group

  Superblock backups stored on blocks:

  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

  4096000

  Writing inode tables: done

  Creating journal (32768 blocks): done

  Writing superblocks and filesystem accounting information: done

  This filesystem will be automatically checked every 33 mounts or

  180 days, whichever comes first. Use tune2fs -c or -i to override.

  正常

  5、挂载到根目录下的datalog目录

  mount /dev/sdc5 /datalog

  再执行df

  Filesystem 1K-blocks Used Available Use% Mounted on

  /dev/sda3 18020368 15983692 1106516 94% /

  /dev/sda1 256666 15923 227491 7% /boot

  tmpfs 777688 0 777688 0% /dev/shm

  /dev/sdb3 30961664 24018284 5370620 82% /data

  /dev/sdc5 20635668 176200 19411232 1% /datalog

  都正常了。完美解决。



http://www.doc88.com/p-18960490435.html

http://apps.hi.baidu.com/share/detail/33191593

要给一块新加到linux系统上的磁盘进行分区,并使用ext3文件系统。需要以下几步:

1. 使用parted 或者 fdisk进行分区;( 如果你想创建、删除分区或重新划分分区大小,分区所在设备     不能正在被使用(分区不能被挂载,并且交换空间不能被启用)。 达到这个目的的最简单方法是在救    援模式中引导系统,当提示挂载文件系统时,选择skip跳过即可)
2. 使用mkfs 把分区格式化成ext3 文件系统;
3. 使用e2label 给分区标签;
4. 创建挂载点;
5. 把分区添加到/etc/fstab文件中;
6. 使用mount命令挂载分区。

完成这6步划分的分区就可以使用了。

操作过程中的细节;
A fdisk命令的使用
   a. 使用fdisk /dev/sdb 进去后经常使用的参数有 m (显示帮助),p(显示分区表),n(创建分区),d(删除分区),l(显示已知的分区类型), t(更改分区的系统ID即文件系统类型) q(退出并不保存),w(退出并保存);
   b. 使用fdisk 创建分区后并保存后会出现一个
             WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
            The kernel still uses the old table.
            The new table will be used at the next reboot.
        意思是需要重启 分区表才能生效。所以重启机子即可。
c. 最后确认一下, 用cat /proc/partitions命令查看新生成的分区。

B mkfs命令的使用
   a. 一般情况下使用命令mkfs -t ext3 /dev/sdb5 即可。

C e2label命令的使用
   a. 给分区打标签的命令一般为e2label /dev/sdb5 /lian 即可。

D 创建挂载点 mkdir /lian

E 添加分区到/etc/fstab
   a. 新添加的一行类似   
          LABEL=/work   /work   ext3   defaults   1 2
    添加到最后一行即可;
b. 添加的一行的第一列LABEL=新添加的分区的标签, 第二列是挂载点,第三列是分区的文件系统类型,第四列是挂载选项,第五列是分区是否备份(0为不备份,1为要备份。一般根分区要备份),第六列 是自检顺序,(0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)。

http://www.linux521.com/2009/system/200907/7332_4.html

论坛徽章:
2
技术图书徽章
日期:2013-11-23 01:55:57白羊座
日期:2013-12-08 15:48:16
12 [报告]
发表于 2011-09-12 18:41 |只看该作者
呀咩喋````

收藏了!!

3Q

论坛徽章:
0
13 [报告]
发表于 2011-09-27 18:04 |只看该作者
为什么硬盘只能有四个主分区
http://licoolxue.iteye.com/blog/607857
博客分类: linux
LinuxBBSIDEthreadBlog
   硬盘最多分为4个主分区,这是一个常识可是很少告诉为什么这么分,网上找了两篇不错的文章应该回答清楚了这个问题
1、PC行业标准中一个硬盘只能分四个分区.这样的四个分区在不同的操作系统中被冠以不同的名称他可能叫partition (主分区)或者slice ,但是无论他们怎么叫,这些系统都支持这样的四个分区,都可以识别分区的起始位置和大小等信息.这里我把这样的分区用一个最常用的词来命名:主分区(primary partition).为什么一个硬盘只能分四个主分区呢?这是由个人计算机初期的设计架构决定的.一开始,PC被设计成这样的启动过程,开机时主板BIOS进行自检,当一切OK后,就开始读取硬盘的第一个扇区,一个扇区的大小是512字节,这是计算机工业里的标准,无论什么硬盘,一个扇区的大小都是512字节.BIOS把这512字节的内容读出来并执行.这512字节被叫做MBR(master boot record)主引导记录) .这512自己包含了硬盘最重要的信息:分区表.由于空间只有区区512字节,所以分区表的大小就有很大限制,他被设计成十分小但是又足够描述硬盘的分区情况.包括分区的开始扇区,结束扇区,引导标志,分区类型等等.每个分区信息用16个字节表示,四个分区就用掉了16X4=64个字节,这64个字节分布在MBR的第467-510字节,后面紧接着两个字节AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘.尽管分区表中明明有数据,也会报错,告诉你系统不存在.所以,对硬盘加密的简单办法就是从MBR中察掉这两个字节.那么这个硬盘挂到任何电脑上都会显示为一个没有分区的空白硬盘.但是只要把这两个字节重新写上,数据又能读出.当然,你得知道怎么重新写上.
2、主分区,也称为主磁盘分区,和扩展分区、逻辑分区一样,是一种分区类型。主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘(在这一点上主分区和逻辑分区很相似,但主分区是直接在硬盘上划分的,逻辑分区则必须建立于扩展分区中)。

  实际上在早期的硬盘分区中并没有主分区、扩展分区和逻辑分区的概念,每个分区的类型都是现在所称的主分区。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计只能存储4个分区的数据。也就是说,一块物理硬盘只能划分为4个逻辑磁盘。在具体的应用中,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,引入了扩展分区和逻辑分区,并把原来的分区类型称为主分区。

为什么硬盘只能最多有四个主分区

   本文为搜索网上资料并加以总结,仅供参考:      MBR(Master Boot Recorder)主要开机扇区,放置硬盘的信息。MBR 可以说是整个硬盘最重要的地方了,因为在 MBR 里面记录了两个重要的东西,分别是:开机管理程序,与磁盘分区表 ( partition table )。所以我们所做的硬盘分区,也就是在修改partition table。

   由于这个 MBR 区块的容量有限,所以,当初设计的时候,就只有设计成 4 个分区纪录(这个说法不太准确,下文有详细说明),这些分区记录就被称为 Primary ( 主分区 ) 及 Extended ( 扩展分区 ) ,也就是说,一颗硬盘最多可以有 4 个 Primary + Extended 的扇区,其中,Extended 只能有一个,因此,你如果要分区成四块磁盘分区的话,那么最多就是可以:

P + P + P + P

P + P + P + E

的情况来分区了。需要特别留意的是,如果上面的情况中, 3P +E 只有三个『可用』的磁盘,如果要四个都『可用』,就得分区成 4P 了!( 因为 Extended 不能直接被使用,还需要分区成 Logical 才行)

思考一:如果我要将我的大硬盘暂时分区成四个 partition ,同时,还有其它的空间可以让我在未来的时候进行规划,那么该如何分区?

由刚刚的说明,我们可以知道, Primary + Extended 最多只能有四个 partition,而如果要超过 5 个 partition 的话,那么就需要 Extended 的帮忙。因此,在这个例子中,我们千万不能分区成四个 Primary 为什么呢?假如您是一个 20 GB 的硬盘,而 4 个 primary 共用去了 15 GB ,您心想还有 5 GB 可以利用对吧?错!剩下的 5 GB 完全不能使用,这是因为已经没有多余的 partition table 纪录区可以记录了,因此也就无法进行额外的分区,当然啰,空间也就被浪费掉了!因此,请千万注意,如果您要分区超过 4 槽以上时,请记得一定要有 Extended 分区区,而且必须将所有剩下的空间都分配给 Extended ,然后再以 logical 的分区区来规划 Extended 的空间。

思考二:我可不可以仅分区 1 个 Primary 与 1 个 Extended 呢?

当然可以!基本上, Logical 可以有 64 个,因此,你可以仅分区一个主分区,并且将所有其它的分区都给 Extended ,利用 Logical 分区来进行其它的 partition 规划即可!

思考三:假如我的硬盘安装在 IDE 1 的 Master ,并且我想要分区成 6 个可以使用的硬盘扇区,那么每个磁盘在 Linux 底下的代号为何?

说明:

由于硬盘在 Primary + Extended 最多可以有四个,因此,在 Linux 底下,已经将 partition table 1 ~ 4 先留下来了,如果只用了 2 个 P + E 的话,那么将会空出两个 partition number 呦!再详细的说明一下,假设我将四个 P + E 都用完了。其中Extended /dev/hda4包括三个逻辑分区。

实际可以使用的是 /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5, /dev/hda6, /dev/hda7 这六个 partition!至于 /dev/hda4 这个 Extended 扇区本身仅是用来规划出让 Logical 可以利用的磁盘空间而已!

那么万一我只想要分区 1 个 Primary 与 1 个 Extended 呢?

因为 1~4 号已经被预留下来了,所以第一个 Logical 的代号由 5 号开始计算起来,而后面在被规划的,就以累加的方式增加磁盘代号啰!而其中 /dev/hda3, /dev/hda4 则是空的,被保留下来的代号。


这个问题,结合历史来说会说得比较准确。为什么最多只可以分四个主要分区,并不是单由操作系统所决定的。

第一,为什么一个扇区只有512字节,为什么不是1024字节呢?

首先,我想说一个扇区是多少字节是可以自己(硬盘生产厂家)定义的,可以是1024字节的。所以说,一个扇区是512字节并不是理论值,而是习惯值。也就是一个扇区的大小为512字节对于硬盘的生产厂家来说都是习惯的这样定义了,谁也不想更改这种习惯。

第二,硬盘的第一扇区可以分成三个部分:第一部分MBR,需要占用446字节,第二部分DPT,需要占用64字节,这是因为一个分区表需要占用16字节,64/16=4,所以刚好能存放四个分区的表,这就是为什么只能分四个分区。还有两个字节就用来存放结束标志。这样

446+64+2=512字节。

对硬盘加密其实就是改写最后两个字节的结束标志。

试想如果当初硬盘厂家将一个扇区设置成1024字节,还是只能分四个分区吗?逻辑驱动器也需要分区表,它存放在扩展分区的第一扇区,所以逻辑驱动器也不是随便想分多少就分多少的。

这些都是一些硬件的知识。

有很多的问题都是历史遗留下来的,要想问个究竟需要对计算机的发展历史有了解。前人所做的一切,不实用了的都被抛弃或改进了,抛弃了就不说了,改进的还是会受到历史的影响。前端时间有个朋友问我为什么intel和nvida要争是CPU还是GPU重要,了解一下CPU的发展史和GPU的发展史很容易就能想到了。这样就不说了。
引用
http://bbs.51cto.com/thread-421679-1.html

引用
http://hi.baidu.com/zzspf/blog/item/5ca351ca7936798fc81768a1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP