linux资料整理之磁盘管理
博客:http://lijinhuan.blog.51cto.com/
微博:http://weibo.com/lijinhuanexperience
微信:xiaoleetongxue
一、磁盘管理概述
1、磁盘接口:
硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。
硬盘接口分为IDE、SATA、SCSI、光纤通道和SAS五种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。SATA是种新生的硬盘接口类型,还正处于市场普及阶段,在家用市场中有着广泛的前景。在IDE和SCSI的大类别下,又可以分出多种具体的接口类型,又各自拥有不同的技术规范,具备不同的传输速度,比如ATA100和SATA;Ultra160 SCSI和Ultra320 SCSI都代表着一种具体的硬盘接口,各自的速度差异也较大。
二、文件系统概述
1、文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
2、文件系统负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
3、一个分区或磁盘在作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。
4、文件系统通用结构:
(1)超级块superblock:
包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)
(2) i节点inode
i节点包括除了名字外的一个文件的所有信息。i节点包括几个数据块的数目,用于存储文件的数据。i节点中只有少量数据块数的空间。它包含了针对某一个具体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置,但是索引结点中不包括文件的名字,文件名是放在目录块里的,目录块里包含有文件的名字以及次文件的索引结点编号。
(3)数据块data block
(4)目录块directory block
(5)间接块indirection block
5、文件系统比较(手机版linux版)
第一:关于EXT2-4分区的网络说明,精简整理!
Ext2: 是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。
Ext3: 是 ext2 的下一代,是在保有目前 ext2 的格式之下再加上日志功能。它兼容ext2,并且从ext2转换成ext3并不复杂。ext3文件系统已经非常稳定可靠。
EXT4: 是ext3文件系统的后继版本,但是Ext4是Linux文件系统的一次革命。在很多方面,Ext4相对于Ext3的进步要远超过Ext3相对于Ext2的进步。Ext3相对于 Ext2的改进主要在日志方面,但是Ext4相对于Ext3的的改进是更深层次的,是文件系统数据结构方面的优化,是一个高效的、优秀的、可靠的和极具特点的文件系统,并且EXT3可以转为EXT4的。
第二:个人总结(根据网上多方资料分析,加上个人经验,总结如下):
ext2,标准系统格式,速度快。
ext3,有日志功能,可以随意断电了,比ext2好;但EXT3的日志系统对卡的读写频繁,这对于FLASH存储设备不好,寿命会减少。
ext4,比ext3有更强大的功能,比如大文件、无限制目录等;实测,对G6而言ext4比ext3耗电!
第三:其他相关信息:
对于速度方面,比如开启A2SD+,有个a2sd --dc2sd功能,是把dalvik-cache这个文件夹放到ext分区。------据说dalvik-cache这个文件夹放回rom(手机)里,速度会好一些,也就是说在开启A2SD+时候,不要a2sd --dc2sd这个命令,只输入a2sd --enable即可!
另外,对于“速度来说肯定2比3更快”,这句话据专家说这是一个误区,原来一直感觉ext2比ext3快,因为ext3就是多了日志系统。------其实不然,ext3的日志系统可以提高读取效率,所以ext3因为有了日志系统,速度快于ext2, 除了速度快,系统Down了之后是没有必要fsck的(我理解也就是断电影响没有EXT2大)
so,综上所诉,个人建议:
考虑速度和SD卡寿命,建议EXT2,但是要保证手机不会突然断电
考虑稳定,同时兼顾速度可以EXT3
追求更新,更强功能,当然就EXT4了
个人推荐EXT3,毕竟稳定才是王道,耗电处在平衡位置!
三、常见文件系统维护命令
http://www.tudou.com/listplay/D64vDjxyQYw/SNyecCzkHAQ.html
1、du 对文件和目录磁盘使用的空间的查看
如 du -h test.txt du -hs /
http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html
2、df 检查linux服务器的文件系统的磁盘空间占用情况
如:df -h
http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html
3、fsck 检查文件系统并尝试修复错误
http://blog.chinaunix.net/uid-9525959-id-2001526.html
4、sync,同步内存数据到硬盘,为迫使缓冲块数据立即写盘并更新超级块。
http://blog.csdn.net/williamwang2013/article/details/8541628
5、 sudo fdisk -l 磁盘分区工具(重点)
注意:fdisk 分区 进入命令模式后操作
http://blog.chinaunix.net/uid-23929712-id-2650378.html
http://v.youku.com/v_show/id_XMzgyMDAwOTI0.html
http://v.youku.com/v_show/id_XMTU3NTM2MzY0.html
http://v.youku.com/v_show/id_XMTU3NTM2MDY4.html
http://v.youku.com/v_show/id_XNzk5NTkxNzUy.html(强烈推荐1)
http://v.youku.com/v_show/id_XNzA1MjQ3OTIw.html(强烈推荐2)
partprobe
6、mkfs -t 系统类型 分区 分区格式化
7、mount 分区 目录 挂载
8、dumpe2fs 装置文件名 查看分区数据块信息
四、磁盘分区格式化挂载(重启失效,看后面的自动挂载)
1、流程:
(1)假设你是使用vm虚拟机创建linux系统的,可以关闭linux电源,然后在虚拟机设备管理处添加磁盘,然后启动电源。
(2)使用fdisk -l命令ubuntu为sudo fdisk -l,查看磁盘分区情况
(3)fdisk + 磁盘 如fdisk /dev/sdb 对磁盘进行管理
(4)进入命令模式,选择p使用n添加一个主分区,主分区和扩展分区只能是1-4号,默认我们选择1,给其+2G可以自己调配
(5)按n进入添加分区选择e添加扩展分区,同上操作,扩展分区不能格式化和挂载
(6)扩展分区可以再分逻辑分区,逻辑分区可以挂载和写入数据。按n选择l添加逻辑分区,流程如上。到此分区可以基本结束
(7)按 partprobe,可以避免有时候分区在使用要求重启而比较麻烦,fdisk -l查看分区
(8)格式化,mkfs -t 系统类型 分区 分区必须格式化才能写入数据
(9)挂载,“mount 分区 目录” 挂载目录必须存在,df -h 查看挂载和使用情况
五、光盘和U盘挂载
1、挂载U盘
把鼠标点击进入虚拟机,插入U盘,使用远程工作fdisk -l 默认
(1)、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。
(2)、在mnt目录下先建立一个usb的目录(如:[root@localhost root]# mkdir /mnt/usb)
(3)、挂载U盘:mount -t vfat /dev/sda1 /mnt/usb
(4)、卸载U盘:umount /mnt/usb
(5)、删除usb目录:rm -rf /mnt/usb
其实,Linux不支持ntfs,移动硬盘不支持,但有办法支持
http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html
2、挂载光盘
挂载光盘的命令如下:
# mount -t is09660 /dev/cdrom /mnt/cdrom
该命令将光盘挂载到/mnt/cdrom目录,使用“ls /mnt/cdrom”命令即可显示光盘中数据和文件。
卸载光盘的命令如下:
# umount /mnt/cdrom
六、分区自动挂载
(重启不失效,fstab不要写错,启动的时候系统会报错)
1、自动挂载
关于linux开机之后自动加载挂载的分区,这块,涉及到的文件是/etc/fstab文件
关于这个文件的描述说明如下:
要求:
1)根目录/必须载入,而且要先于其他载入点被载入
2)其他载入点必须为已建立的目录
3)若进行卸载,必须先将工作目录移到载入点及其子目录之外
下面是/etc/fstab的实例
# This file is edited by fstab-sync - see ‘man fstab-sync‘ for details
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=SWAP-sda2 swap swap defaults 0 0
/dev/sda3 /home ext3 defaults 1 1
/dev/hdc /media/cdrom auto pamconsole,exec,noauto,managed 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
~
第一列为设备号或该设备的卷标 (也可以写uuid)
第二列为挂载点
第三列为文件系统
第四列为文件系统参数
第五列为是否可以用demp命令备份。0:不备份,1:备份,2:备份,但比1重要性小。设置了该参数后,Linux中使用dump命令备份系统的时候就可以备份相应设置的挂载点了。
第六列为是否在系统启动的时候,用fsck检验分区。因为有些挂载点是不需要检验的,比如:虚拟内存swap、/proc等。0:不检验,1:要检验,2要检验,但比1晚检验,一般根目录设置为1,其他设置为2就可以了。
其中红色的那部分是我新增的分区,添加进去的挂载记录。
及时发现错误 mount -a
2、挂载文件错误,fstab修复
http://skymax.blog.51cto.com/365901/114394/
七、分配swap分区
1、free命令查看
http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316438.html
2、参考上面分区的方法,修改分区号为82(命令模式下按t,w保存退出)
最后执行 partprobe 不是万能,有时候还是需要重启
3、mkswap 格式化
4、Swapon 加入swap空间
5、swapoff 取消
6、Free
7、修改 fstab,自动挂载
本文出自 “锦焕同学” 博客,转载请与作者联系!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。