亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net
您需要 登录 才可以下载或查看,没有账号?立即注册
x
前言 硬盘是一台计算机的必备硬件之一,计算机如何开始使用硬盘资源就要从硬盘分区说起。开始时,一台计算机只有一块硬盘,在安装linux Ubuntu时,第一步就是对硬盘进行分区。当我们已经安装操作系统,硬盘空间不够的时候,我们需要增加新的硬盘扩大使用空间,特别是对于虚拟化的主机,这种增加新的硬盘就变得有一些不一样了,要手动进行处理。 我在做测试的走进了一个误区中,一直对subpartition这个概念不太理解,纠结于sdb2p1,sdb2p1这样的分区命名。经过几次测试后,才发现,问题出现是因为对操作系统的不理解,以至于在互联网上都找找不太多相关问题的讨论。下面我就介绍一下,我的误区及如何找到正确的方法。 目录 - 分区的基本知识
- 新增硬盘分区,走入误区
- 完成对新增硬盘分区及挂载
1. 分区的基本知识a. 硬盘分类及标识:IDE,SATA,SCSI三个大类 硬盘与标识对应关系如下表所示: 装置 | 装置在Linux内的文件名 | IDE硬盘机 | /dev/hd[a-d] | SCSI/SATA/USB硬盘机 | /dev/sd[a-p] | USB快闪碟 | /dev/sd[a-p](与SATA不同) | 软盘驱动器 | /dev/fd[0-1] | 打印机 | 25针: /dev/lp[0-2]
USB: /dev/usb/lp[0-15] | 鼠标 | PS2: /dev/psaux
USB: /dev/usb/mouse[0-15] | 当前CDROM/DVDROM | /dev/cdrom | 当前的鼠标 | /dev/mouse |
上面表格摘自:http://blog.csdn.net/zollty/article/details/7001950 可以看到我现在硬盘有sda标识,物理上是一个SAS硬盘,300G。 ~ sudo fdisk -lDisk /dev/sda: 299.4 GB, 299439751168 bytes255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efd7c Device Boot Start End Blocks Id System/dev/sda1 2048 97656831 48827392 82 Linux swap / Solaris/dev/sda2 97656832 136718335 19530752 83 Linux/dev/sda3 136718336 214843335 39062500 83 Linux/dev/sda4 * 214843392 215037951 97280 83 Linuxb. 硬盘构成:磁头(head),磁道(track),磁柱(cylinder),扇区(setor)
在互联网上可以很容易找到解释,我就不细说了。 我们在分区的时修改要能看懂硬盘信息就够了。 Disk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976硬盘信息:
/dev/sdb,1999.3 GB,255个磁头,63个磁道,243068个磁柱,3904897024个扇区。 c. 硬盘的分区
关于linux硬盘的分区主要分为 基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于4个。基本分区可以直接使用但不能再分区。扩充分区必须再进行二次分区才能使用。需要对扩充分区建立逻辑分区(logical partion),逻辑分区没有数量上限制。 所以,对于新增硬盘来说,如果我们只有4个及以下的分区要求,可以直接用基本分区完成。如果1T的硬盘想分成6个区,就需要用扩充分区+逻辑分区来实现。
2. 新增硬盘分区,走入误区我现在外接了两块SATA 7200转硬盘,分为都是1T的。重新计算机可以看硬盘信息。 ~ sudo fdisk -lDisk /dev/sda: 299.4 GB, 299439751168 bytes255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efd7c Device Boot Start End Blocks Id System/dev/sda1 2048 97656831 48827392 82 Linux swap / Solaris/dev/sda2 97656832 136718335 19530752 83 Linux/dev/sda3 136718336 214843335 39062500 83 Linux/dev/sda4 * 214843392 215037951 97280 83 LinuxDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976 Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFAT/dev/sdb2 1952448512 3904892927 976222208 7 HPFS/NTFS/exFAT两块硬盘,分别挂载到了/dev/sdb1,/dev/sdb2。下面我们对/dev/sdb2硬盘进行处理。 /dev/sdb2还没有进行分区。 ~ fdisk -l /dev/sdb2Disk /dev/sdb2: 999.7 GB, 999651540992 bytes255 heads, 63 sectors/track, 121534 cylinders, total 1952444416 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdb2 doesn't contain a valid partition table注意下面是进入误区的思考: 对sdb2进行磁盘分区规划: / 50G/extends 750G /ext1 150G /ext2 150G /ext3 150G /ext4 150G /ext5 150G开始进行分区 ~ sudo fdisk /dev/sdb2Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x6e28e6e6.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)Command (m for help): mCommand 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)创建第一个基本分区/,大小为50G, 50*1024*1024*1024/512+2048=104859648 Command (m for help): nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): pPartition number (1-4, default 1):Using default value 1First sector (2048-1952444415, default 2048):Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-1952444415, default 1952444415): 104859648Command (m for help): pDisk /dev/sdb2: 999.7 GB, 999651540992 bytes255 heads, 63 sectors/track, 121534 cylinders, total 1952444416 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x44198dad Device Boot Start End Blocks Id System/dev/sdb2p1 2048 104859648 52428800+ 83 Linux创建第二个扩充分区750G,750*1024*1024*1024/512+104859648=1677723648 Command (m for help): nPartition type: p primary (1 primary, 0 extended, 3 free) e extendedSelect (default p): ePartition number (1-4, default 2):Using default value 2First sector (104859649-1952444415, default 104859649):Using default value 104859649Last sector, +sectors or +size{K,M,G} (104859649-1952444415, default 1952444415): 1677723648Command (m for help): pDisk /dev/sdb2: 999.7 GB, 999651540992 bytes255 heads, 63 sectors/track, 121534 cylinders, total 1952444416 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x44198dad Device Boot Start End Blocks Id System/dev/sdb2p1 2048 104859648 52428800+ 83 Linux/dev/sdb2p2 104859649 1677723648 786432000 5 Extended创建逻辑分区1, 150G, 150*1024*1024*1024/512+104861697=419434497 Command (m for help): nPartition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5)Select (default p): lAdding logical partition 5First sector (104861697-1677723648, default 104861697):Using default value 104861697Last sector, +sectors or +size{K,M,G} (104861697-1677723648, default 1677723648): 419434497创建逻辑分区2, 150G, 150*1024*1024*1024/512+419436546=734009346
创建逻辑分区3, 150G, 150*1024*1024*1024/512+734009346=1048582146
创建逻辑分区4, 150G, 150*1024*1024*1024/512+1048582146=1363154946
创建逻辑分区5, 150G, 150*1024*1024*1024/512+1363154946=1677723648 查看分区结果 Command (m for help): pDisk /dev/sdb2: 999.7 GB, 999651540992 bytes255 heads, 63 sectors/track, 121534 cylinders, total 1952444416 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x44198dad Device Boot Start End Blocks Id System/dev/sdb2p1 2048 104859648 52428800+ 83 Linux/dev/sdb2p2 104859649 1677723648 786432000 5 Extended/dev/sdb2p5 104861697 419434497 157286400+ 83 Linux/dev/sdb2p6 419436546 734009346 157286400+ 83 Linux/dev/sdb2p7 734011395 1048582146 157285376 83 Linux/dev/sdb2p8 1048584195 1363154946 157285376 83 Linux/dev/sdb2p9 1363156995 1677723648 157283327 83 Linux退出保存 Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 22: Invalid argument.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.更新内核分区表
不用重启系统,更新内核分区表 sudo partprobe用fdisk查看新建的分区 ~ sudo fdisk -lDisk /dev/sda: 299.4 GB, 299439751168 bytes255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efd7c Device Boot Start End Blocks Id System/dev/sda1 2048 97656831 48827392 82 Linux swap / Solaris/dev/sda2 97656832 136718335 19530752 83 Linux/dev/sda3 136718336 214843335 39062500 83 Linux/dev/sda4 * 214843392 215037951 97280 83 LinuxDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976 Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFAT/dev/sdb2 1952448512 3904892927 976222208 7 HPFS/NTFS/exFAT这个时候,相信大家已经发现问题了,新建的分区完全没有生效。 对硬盘sdb2使用fdisk查看分区 ~ fdisk -l /dev/sdb2Disk /dev/sdb2: 999.7 GB, 999651540992 bytes255 heads, 63 sectors/track, 121534 cylinders, total 1952444416 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x44198dad Device Boot Start End Blocks Id System/dev/sdb2p1 2048 104859648 52428800+ 83 Linux/dev/sdb2p2 104859649 1677723648 786432000 5 Extended/dev/sdb2p5 104861697 419434497 157286400+ 83 Linux/dev/sdb2p6 419436546 734009346 157286400+ 83 Linux/dev/sdb2p7 734011395 1048582146 157285376 83 Linux/dev/sdb2p8 1048584195 1363154946 157285376 83 Linux/dev/sdb2p9 1363156995 1677723648 157283327 83 Linux为什么会这样的?网上查了一下,一些朋友也遇到了这样的情况。他们把sdb2p1的这种分区叫做子分区subpartition。 操作系统不明白,为什么要在sdb2的分区上再创建sdb2p1子分区。但当时我也不明白,如果我想把一块新的硬盘分区后再使用应该如何进行。其实,这种纠结的想法,原于对操作系统的不了解,导致了明白的人不会出现这种错误,出现这种错误的人找不到明白的解释。 跳出子分区的概念,我们应该如何操作呢! 3. 完成对新增硬盘分区及挂载上面的错误在于,我们不应该对/dev/sdb2硬盘分区,而是对/dev/sdb进行分区。 Disk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976 Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFAT/dev/sdb2 1952448512 3904892927 976222208 7 HPFS/NTFS/exFAT操作系统已经把两块新增加的硬盘,识别为了/dev/sdb,这个时候我们只需要删除原有的/dev/sdb2基本分区,重建为扩充分区,然后再按要求做逻辑分区就可以了。 删除sdb2分区,重建为扩充分区/dev/sdb2 ~ sudo fdisk /dev/sdbCommand (m for help): dPartition number (1-4): 2Command (m for help): pDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976 Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFATCommand (m for help): nPartition type: p primary (1 primary, 0 extended, 3 free) e extendedSelect (default p): ePartition number (1-4, default 2):Using default value 2First sector (1952448512-3904897023, default 1952448512):Using default value 1952448512Last sector, +sectors or +size{K,M,G} (1952448512-3904897023, default 3904897023):Using default value 3904897023Command (m for help): pDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976 Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFAT/dev/sdb2 1952448512 3904897023 976224256 5 Extended重新规划分区: 创建逻辑分区1, 150G, 150*1024*1024*1024/512+1952450560=2267023360
创建逻辑分区2, 150G, 150*1024*1024*1024/512+2267023360=2581596160
创建逻辑分区3, 150G, 150*1024*1024*1024/512+2581596160=2896168960
创建逻辑分区4, 150G, 150*1024*1024*1024/512+2896168960=3210741760
创建逻辑分区5, 150G, 150*1024*1024*1024/512+3210741760=3525314560
创建逻辑分区6, 189G, 剩余空间 Command (m for help): pDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFAT/dev/sdb2 1952448512 3904897023 976224256 5 Extended/dev/sdb5 1952450560 2267023360 157286400+ 83 Linux/dev/sdb6 2267025409 2581596160 157285376 83 Linux/dev/sdb7 2581598209 2896168960 157285376 83 Linux/dev/sdb8 2896171009 3210741760 157285376 83 Linux/dev/sdb9 3210743809 3525314560 157285376 83 Linux/dev/sdb10 3525316609 3904897023 189790207+ 83 Linux保存退出 Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.更新内核分区表
sudo partprobe 查看新建的分区 ls /dev/sdbsdb sdb1 sdb10 sdb2 sdb5 sdb6 sdb7 sdb8 sdb9格式化分区 sudo mkfs -t ext4 /dev/sdb5sudo mkfs -t ext4 /dev/sdb6sudo mkfs -t ext4 /dev/sdb7sudo mkfs -t ext4 /dev/sdb8sudo mkfs -t ext4 /dev/sdb9sudo mkfs -t ext4 /dev/sdb10挂载分区 ~ sudo mount -t ext4 /dev/sdb5 /disk/sdb5~ ls /disk/sdb5lost+found查看最终的分区效果 cos@delta:~$ sudo fdisk -l[sudo] password for cosisk /dev/sda: 299.4 GB, 299439751168 bytes255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efd7c Device Boot Start End Blocks Id System/dev/sda1 2048 97656831 48827392 82 Linux swap / Solaris/dev/sda2 97656832 136718335 19530752 83 Linux/dev/sda3 136718336 214843335 39062500 83 Linux/dev/sda4 * 214843392 215037951 97280 83 LinuxDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976 Device Boot Start End Blocks Id System/dev/sdb1 2048 1952448511 976223232 7 HPFS/NTFS/exFAT/dev/sdb2 1952448512 3904897023 976224256 5 Extended/dev/sdb5 1952450560 2267023360 157286400+ 83 Linux/dev/sdb6 2267025409 2581596160 157285376 83 Linux/dev/sdb7 2581598209 2896168960 157285376 83 Linux/dev/sdb8 2896171009 3210741760 157285376 83 Linux/dev/sdb9 3210743809 3525314560 157285376 83 Linux/dev/sdb10 3525316609 3904897023 189790207+ 83 Linux完成对/dev/sdb2硬盘的分区操作。 希望帮助和我一样走入到误区的朋友吧。
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题!
如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服!
如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务! |