扩展空间
fdisk: invalid option -- '-'Usage: fdisk [options] <disk> change partition table fdisk [options] -l <disk> list partition table(s) fdisk -s <partition> give partition size(s) in blocks Options: -b <size> sector size (512, 1024, 2048 or 4096) -c switch off DOS-compatible mode -h print help -u <size> give sizes in sectors instead of cylinders -v print version -C <number> specify the number of cylinders -H <number> specify the number of heads -S <number> specify the number of sectors per track
查看当前分区信息
fdisk -l
上图的红色标记显示当前sda总共有3916个柱面,而目前只使用了2611个柱面,现在就将剩下的柱面创建分区。
创建分区
使用:fdisk 磁盘文件 fdisk /dev/sda
1.输入m查看帮助。
a :设置可引导标记 b :修改bsd的磁盘标签 c :设置DOS操作系统兼容标记 d :删除一个分区 l :显示已知的分区类型,其中82为Linux swap分区,83为Linux分区 m :显示帮助信息 n :增加一个新的分区 o :创建一个新的空白的DOS分区表 p :显示磁盘当前的分区表 q :退出fdisk程序,不保存任何修改 s :创建一个新的空白的Sun磁盘标签 t :改变一个分区的系统号码(比如把Linux Swap分区改为Linux分区) u :改变显示记录单位 v :对磁盘分区表进行验证 w :保存修改结果并退出fdisk程序 x :特殊功能
2.输入n创建分区
询问我们是要创建主分区还是扩展分区,主分区最多只能创建4个,如果创建了扩展分区那么扩展分区需要占用一个主分区。
这里我们创建扩展分区,输入e
需要我们输入起始柱面,默认是2611开始,这里可以输入2611也可以直接enter。
最后输入3916,这样就创建好了扩展分区。
3.创建逻辑分区
输入p,查看分区创建情况
可以发现sda4的文件系统类型是扩展分区,扩展分区是无法使用的,必须在扩展分区的基础上创建逻辑分区
输入n创建逻辑分区,因为这里只剩下刚才创建的逻辑分区需要创建,所以不需要选择输入开始和结束柱面即可。
再输入p显示所有分区,可以看到创建了sda5这个逻辑分区
4.输入w保存
当然刚才也可以直接创建主分区,不创建逻辑分区。
5.格式化逻辑分区
如果是使用虚拟机,需要重启才可以对分区进行格式化,否则会提示找不到分区文件。
mkfs -t ext3 /dev/sda5
6.挂载分区
先创建分区挂载的文件夹
mkdir /newpar
将sda5挂载到/newpar文件下
mount /dev/sda5 /newpar
7.查看挂载情况
df -h
这个挂载只是临时的,重启服务器之后又需要重新挂载,通过修改/etc/fstab文件使挂载永久有效
8.永久挂载
在编写的时候可以使用tab键写下一项。
概念
通过前面的预热,现在来讲概念理解起来会容易一点。
磁盘
在linux系统中所有的设备都会以文件的形式存储。设备一般保存在/dev目录下面,以sda、sda1、sda2 ...,sdb、sdb1...,hda,hdb。现在的设备一般都是sd命名,以前的很老的硬盘是以ha命名。
sda:第一块硬盘,如果对磁盘进行了分区会有sda1(第一个分区),sda2等。
sdb:第二个硬盘,同样对硬盘分区后有sdb1,sdb2等。
分区
分区的目的就是便于管理,比如在windows系统我们一般会分C盘,D盘,E盘等。
在讲主分区和扩展分区前先看张图片。
这是我的当前windows系统的分区情况,从这里可以很好的理解主分区和扩展分区的概念,同时也有柱面的概念,当前主分区是C盘,扩展分区包括D盘、E盘、F盘。同时D盘、E盘、F盘也叫逻辑分区。
其实我们也可以不创建扩展分区,在windows里面如果不创建扩展分区的话对程序的管理会不方便,只有一个分区。但是在linux中如果刚才在创建分区的是有留言会发现linux只能创建4个主分区,如果需要创建更多的分区那么久必须创建逻辑分区,其中逻辑分区需要占用一个主分区。
文件系统
linux中的文件系统也就是分区类型,在windows中有NTEF,FAT32等,linux中常见的有Ext2、Ext3、Ext4、Linux swap、proc、sysfs、tmpfs等,可以通过mount命名查看当前已挂载的文件系统。
格式化
在前面创建完分区后有一步是要对分区进行格式化,其实在windows系统中也是一样,在创建好一个分区后也需要将分区格式化,只有格式化成具体的文件类型才能使用。
挂载
在windows中分区格式化后就可以使用,但是在linux系统中必须将分区挂载到具体的路径下才可以。
接下来演示增加一个新磁盘的完整过程。
新增硬盘
在当前虚拟机中增加一块20G的硬盘
1.使用fdisk -l查询当前系统分区情况
可以看到新增加的sdb磁盘还没有分区
2.创建主分区
fdisk /dev/sdb 输入n
在输入结束柱面的这里如果你不知道该输入多大的数字,你可以输入+然后输入你要设的大小。这里我设置5G的主分区。
输入p查看分区信息,可以看到刚创建的sdb1主分区,接下来创建逻辑分区。
3.创建扩展分区
图片上通过红色标注了操作步骤。可以看到当前已创建了sdb2扩展分区,柱面从655-2610,即将剩下的所有空间创建为扩展分区。
4.创建逻辑分区
总共创建了两个逻辑分区,逻辑分区默认从5开始,第一个逻辑分区大小2G,用来做交换分区用,剩下全部给sdb6.
5.修改文件类型ID
因为默认分区id都是83即linux文件类型,现在将sdb5的文件类型ID改成82即交换分区。
6.保存退出
7.格式化分区
接下来要对sdb的每一个分区进行格式化,
注意:扩展分区不需要进行格式
输入mkfs.ext3 /dev/sdb1
swap分区格式化要使用
mkswap /dev/sdb5
加载文件 swapon /dev/sdb5 查看是否生效 swapon -s
可以看到sda3,和sdb5这两个swap分区
8.挂载分区
这里直接使用修改文件的方式永久挂载
创建挂载文件路径 mkdir sdb1 sdb6
9.立即生效
partprobe
在我的虚拟机上面无法立即生效,重启机器。
shutdown -r now
重启之后会发现,sdb1,sdb6都已经生效了,而且swap也变成了6G(sda3+sdb5)
补充
格式化分区还可以使用带参数的mke2fs命令
mke2fs [-c|-l filename] [-b block-size] [-f fragment-size] [-i bytes-per-inode] [-I inode-size] [-J journal-options] [-G meta group size] [-N number-of-inodes] [-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory] [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]] [-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]
-b:指定区块大小,单位为字节。-c:检查是否有损坏的区块。-f:指定不连续区段的大小,单位为字节。-F:不管指定的设备为何,强制执行mke2fs。-i:指定"字节/inode"的比例。-N:指定要建立的inode数目。-l:从指定的文件中,读取文件西中损坏区块的信息。-L:设置文件系统的标签名称。-m:指定给管理员保留区块的比例,预设为5%。-M:记录最后一次挂入的目录。-q:执行时不显示任何信息。-r:指定要建立的ext2文件系统版本。-R:设置磁盘阵列参数。-S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。-v:执行时显示详细信息。-V:显示版本信息。-T:指定文件系统类型
dumpe2fs命令
查看分区的详细信息 dumpe2fs /dev/sdb1
本文转自 bxst 51CTO博客,原文链接:http://blog.51cto.com/13013670/1939679