认识磁盘:
硬盘的种类主要是SCSI 、IDE及目前流行的SATA等
硬盘的物理几何结构是由盘、磁盘表面、柱面、扇区组成,一个张硬盘内部是由几张碟片叠加在一起,这样形成一个柱体面;每个碟片都有上下表面;磁头和磁盘表 面接触从而能读取数据
磁盘容量的计算公式:磁面个数 x 扇区个数 x 每个扇区的大小512 x 柱面个数 = 硬盘体积 (单位bytes)
硬盘的分区由主分区、扩展分区和逻辑分区组成;所以我们在对硬盘分区时要遵循这个标准;主分区(包括扩展分区)的最大个数是四个,主分区(包含扩展分区)的个数由硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程式(GRUB,LILO等)和分区表记录。其中扩展分区也算一个主 分区;扩展分区下能包含更多的逻辑分区;所以主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的。
其中在linux上IDE硬盘和SCSI等其他硬盘的区分是:IDE以hd为标示,SCSI和其他硬盘的则是以sd来区分的,但由于在服务器上同种硬盘又有很多这时我们就用小写字母(a-z)表示硬盘的,分区又有很多这时我们就用阿拉伯数字表示分区但是主分区是用1-4表示,逻辑分区是5以后的数字在linux上使用fdisk -l查看其的相关信息如下:
isk /dev/sda: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 7832 62806117+ 8e Linux LVM
其中heads表示磁盘面,sectors表示扇区,cylinders表示柱面
其他查看磁盘的信息可以使用如下命令:
查看磁盘的分区情况:fdisk –l
查看磁盘的使用情况:df –h
查看目录的利用空间:du dirname
查看磁盘的挂载情况:mount
在linux上交换分区是必备的分区,有什么作用呢?
当程序需要的内存比电脑上拥有的物理内存还要大的时候,解决办法就是把存不下的东西转移到硬盘上的“虚拟内存”中去,尽管硬盘的速度比内存慢上很多,但是至少容量要大上很多。
另外,操作系统也可以把一些很久不活动的程序转移到虚拟内存中去,留出更多的主内存给需要的程序和磁盘缓冲
使用交换分区
我们怎么使用交换分区呢?
swapon /dev/hda1 开启/dev/hda1分区的交换功能
swapon -v /dev/hda1 开启/dev/hda1分区的交换功能,并输出详细信息
swapon -s 查看开启的全部交换分区或交换文件
swapon -v -p 1 /dev/hda1 将/dev/hda1设置成最高优先级,-p选项指定优先级
swapoff /tmp/swapfile 关闭交换区
swapon -a是启用所有的交换分区
我们在利用一块磁盘时应该做哪些准备工作呢?
1首先需要给磁盘分区:使用fdiak 设备名
里面有部分参数
m帮助 n 新建一个分区 d:删除 w保存退出 q:不保存退出 p:列出已有分区 l:列出分区类型 t:改变分区类型
2当我们分完区之后就应该对磁盘格式化了,只有这样才可以写数据,但是要注意的是我们在格式磁盘时所指定的文件系统要和我们创建分区要一致,否则可能不能使用该分区
所用到的命令:mkfs -t指定文件系统 -L指定卷标
在创建ext2和ext3的文件系统时还可以使用另外强大的命令mke2fs
-L设定卷标,
-j:格式化成ext3 -b:块{存储数据的最小单位}大小(1024,2048,4096)
-c:创建时检查磁盘是否有坏块
-i:指定bytes/inode的比率
默认8K(8192byte)一个inode -N:指定inode数目 -m:指定预留管理的空间默认5%的大小
但是我们还会遇到这样的情况就是当我们把分区都分好一切工作都准好了突然发现我们创建的分区有问题这时怎么办呢?是把分区重新删了在建?不用担心这时还有两外一个命令:tune2fs
就是磁盘格式完成修改属性的命令 tune2fs
-j:ext2—>ext3 -L:修改卷标
–m:修改预留百分比 -r:指定inode -l显示文件系统详细信息 -i:用于指定文件自检之间的时间间隔 -c:挂载多少次以后自检 -o:文件系统的默认挂载选项
但是交换分区的格式化比较不同有专门的命令使用:mkswap 来创建交换分区
3我们分区创建好了同时也格式化好了,但是还是不能使用的,linux和windows不同,linux的设备都需要挂在上来才可以在里面写入数据的,这时我们提到挂载就有必要提下挂载的命令mount的使用
mount使用格式:mount 选项 –o 选项 设备名 挂载点
默认挂载向:rw,suid,dev访问特殊文件,exec执行文件能执行,auto自动挂载,nouser不允许普用户挂载,
sync异步
-a 挂载所有设备 是/etc/fstab下的所有文件 -t:指定文件类型
-o后的选项:
ro仅读 acl启用访问控制列表, loop回环
noexec nosuid noatuo
这里我们说下loop回环挂载的作用,就是可以挂载本地的一个文件作为一个设备来访问
但是有必要注意的是,挂载时的挂载点不能挂载在有文件内容的文件下,因为挂载后会把原有的文件都隐藏了,不能再访问以前的数据
当我们使用完了卸载的命令是:umount
其后可以是设备名,还可以是的挂载点,还可以是卷标
另外还有一个命令:remount就是不用卸载而重新挂载
但是在卸载设备的过程中我们还会遇到这样的问题,就是不让卸载说设备忙,这时我们也没有操作但是可能有其他用户在这一设备里操作我们想看下是谁在操作可以使用fuser 来显示是谁在访问某个文件系统
这时我们发现是一个无足轻重的用户在访问我们就可以强行把给用户踢出使用该命令的参数-km直接踢出,还有-v参数显示谁在使用哪个进程
4我们也挂载好了就可以访问了,但是存在这样一个问题,就是当我们重启系统的时候就又要重新挂载,我们怎样做到可以开机自动挂在呢,这厮就需要配置一开机加载设备的文件在/etc/fstaab里。那我们就简单的介绍下这个文件,一共有六段组成分别是
按照上面的标准和解释我们可以把我们创建的分区加到该文件中就可以做到开机加载了
到此为止我们创建的一些分区就可以正常使用了
最后补充几个命令
sync:做到内存中的数据保存在磁盘上做到用户
findfs根据卷标查找文件系统 例:findfs LABEL=DATE(卷标名)
dumpe2fs 用于查看是否磁盘碎片
blkid
可以显示某一分区的信息 例: blkid /dev/sda5
e2label 查看分区卷标 也可以用于指定卷标格式:e2label 分区 卷标 例:e2label /dev/sda3
DATETE
sfdisk备用分区表和创建分区
sfdisk –d /dev/sdb >/root/sdb.back 备份
sfdisk
/dev/sdb </root/sdb.back 恢复