linux的基本操作(磁盘管理)
磁盘管理
【查看磁盘或者⽬录的容量 df 和 du】
df 查看已挂载磁盘的总容量、使⽤容量、剩余容量等,可以不加任何参数,默认是按k为单位显⽰的
df常⽤参数有 –i -h -k –m等
-i 使⽤inodes 显⽰结果
-h 使⽤合适的单位显⽰,例如G
-k -m 分别为使⽤K,M为单位显⽰
简单介绍⼀下,你看到的相关数据。Filesystem 表⽰扇区,也就是你划分磁盘时所分的区;1K-blocks/1M-blocks表⽰以1K/1M为单位;Used 和 Available分别是已使⽤和剩余;Use% 就是已经使⽤的百分⽐,如果这个值⼤于90% 那么你就应该注意了,磁盘很有可能马上就会变满的;Mounted on 则表⽰该分区(扇区)所挂载的地⽅。
二战电影大全
计算机管理制度du ⽤来查看某个⽬录所占空间⼤⼩
语法:du [-abckmsh] [⽂件或者⽬录名] 常⽤的参数有:
-a:全部⽂件与⽬录⼤⼩都列出来。如果不加任何选项和参数只列出⽬录(包含⼦⽬录)⼤⼩。
-b:列出的值以bytes为单位输出,默认是以Kbytes
-c:最后加总
-k:以KB为单位输出
-m:以MB为单位输出
-s:只列出总和
-h:系统⾃动调节单位,例如⽂件太⼩可能就⼏K,那么就以K为单位显⽰,如果⼤到⼏G,则就以G为单位显⽰。笔者习惯⽤ du –sh filename 这样的形式。
【磁盘的分区和格式化】
笔者经常做的事情就是拿⼀个全新的磁盘来分区并格式化。这也说明了作为⼀个linux系统管理员,对于磁盘的操作必须要熟练。所以请你认真学习该部分内容。
fdisk linux下的
语法: fdisk [-l ] [设备名称]
-l :后边不跟设备名会直接列出系统中所有的磁盘设备以及分区表,加上设备名会列出该设备的分区表。
如果不加-l 则进⼊另⼀个模式,在该模式下,可以对磁盘进⾏分区操作。
刚进⼊该模式下,会有⼀个提⽰Command (m for help): 此时按m则会打印出帮助列表,如果你英⽂好,我想你不难理解这些字母的功能。笔者常⽤的有p, n,d, w, q.
P:打印当前磁盘的分区情况。
n:重新建⽴⼀个新的分区。
w:保存操作。
q:退出。
d:删除⼀个分区
因为笔者的linux系统是安装在虚拟机上的,所以我可以增加⼀块新的磁盘。然后笔者会把新的磁盘分成多个分区。
当再次fdisk -l 查看时发现多了⼀个/dev/hdb 设备,并提⽰该设备没有可⽤的分区表。那么下⾯就来分⼀下这个/dev/hdb.
⾸先⽤p查看⼀下,并没有任何分区信息。
⽤n创建⼀个新的分区,会提⽰要建⽴e (extended 扩展分区)或者p (primary partition),这⾥笔者选择,所以按了p回车后,⼜让输⼊First cylinder 你或者直接回车或者输⼊⼀个数字,因为这块磁盘是新的并没有任何分区,所以直接回车其实就是从1开始了。你也可以⾃定义输⼊,但不要超过2080,笔者这⾥输⼊1回车。此时会提⽰要分多⼤,可以写⼀个数值(2-2080),也可以输⼊+sizeK或者+sizeM,后者⽐较直观容易理解,所以笔者在这⾥输⼊+100M,即我分了⼀个100M的。再⽤p查看时,果真多出来⼀个分区。然后笔者继续重复前⾯的操作,建⽴了4个。当笔者再次输⼊n创建分区时,结果提⽰错了。
由此你会发现,在linux中最多只能创建4个主分区,那如果你想多创建⼏个分区如何做?很容易,在创建完第三个分区后,创建第四个分区时选择扩展分区。
先删除第四个主分区,然后建⽴⼀个扩展分区
在建⽴扩展分区时,会问你要分多少给这个扩展分区,笔者直接回车,即把所有空间都分给了这个扩展分区。这个扩展分区/dev/hdb4并不能往⾥写数据,它只是⼀个空壳⼦,需要我们继续在这个空壳中继续创建分区。
当建⽴完扩展分区,然后按n创建新分区时你会发现不再提⽰是要建⽴p还是e了,因为我们已经不能再创建p了。在这⾥需要你明⽩的
是,hdb5 其实只是hdb4 中的⼀个⼦分区,到⽬前为⽌可⽤的分区也才4个,那笔者就再创建第5个分区出来。
然后按w保存,该模式⾃动退出,如果你不想保存分区信息直接按q即可退出。
下⾯我们把刚分好的分区删除,重新建⽴分区。如何删除你还记得吧,对了就是直接按d然后选择合适的数字。删除完所有分区后,这块磁盘就恢复如初了。
第⼀个分区,我们就建⽴成扩展分区。并且分给它200M。
当再次新建分区时,发⽣了变化,不再是p或者e了,⽽是p或者l(逻辑分区),这是为什么呢?在上⾯也提到了,⼀个扩展分区只是⼀个空壳,在扩展分区下才可以继续划分⼩的分区,这个⼩的分区其实就是逻辑分区了。
⽽且这个逻辑分区默认都是从字数5开始的,因为前⾯的数字要么给主分区留着,要么给扩展分区留着。由此我们也可以得到,在linux中最多可以创建4个主分区,⼀旦创建4个主分区后就不能增加任何分区了。另外最多也只能创建⼀个扩展分区。扩展分区下的逻辑分区最多可以创建多少呢?IDE的硬盘(类似于hda, hdb, hdc 等)最多可以创建10个(hdb5-hdb15),这是笔者试验出来的结果。有的资料说linux下的逻辑分区是没有限制的,也有的说最⼤可以到64,⾄于对不对,需要你去近⼀步考察了,我们没有必要多么深⼊的研究这个问题,也没有什么意义。
通过以上操作,相信你也学会了⽤fdisk 来分区了吧。值得提出的是,不要闲着没事分区玩⼉,这操作的危险性是很⾼的,⼀不留神就把你上的数据全部给分没有了。如果有分区的操作,那么请保持百分之⼆百的细⼼,切记切记!
<2 / 3 /mke2fs 格式化linux硬盘分区
当⽤man查询这三个命令的帮助⽂档时,你会发现我们看到了同⼀个帮助⽂档,这说明三个命令是⼀样的。常⽤的选项有:
-b:分区时设定每个数据区块占⽤空间⼤⼩,⽬前⽀持1024, 2048 以及4096 bytes每个块。
-i:设定inode⼤⼩
-N:设定inode数量,有时使⽤默认的inode数不够⽤,所以要⾃定设定inode数量。
-c:在格式化前先检测⼀下磁盘是否有问题,加上这个选项后会⾮常慢
-L:预设该分区的标签label
-j:建⽴ext3格式的分区,如果使⽤3 就不⽤加这个选项了
不加任何选项,直接格式化/dev/hdb1
上例中更改了block size为4096 默认是1024,⽽inode⼤⼩设定为4096。
下⾯的例⼦分区时⾃定义分区的label(标签)名。
e2label ⽤来查看或者修改分区的标签(label)
这个命令很简单,后边直接跟分区编号,即可查看该分区的label,当想要修改标签名时,分区编号后边跟想要的标签名即可。
fsck 检查硬盘有没有
语法: fsck [-Aar] [分区]
-A :加该参数时,后不需要跟分区名作为参数。它会⾃动检查/etc/fstab ⽂件下的所有分区(开机过程中就会执⾏⼀次该操作);
-a :⾃动修复检查到有问题的分区;
-r :当检查到有的分区时会让⽤户决定是否修复。
当你使⽤fsck检查磁盘有⽆时,会提⽰⽤户“跑这个任务可能会导致某些挂载的⽂件系统损坏”,所以这个命令不要轻易运⾏。否则真的遇到问题,系统甚⾄都不能启动了。
【挂载/卸载磁盘】
在上⾯的内容中讲到了磁盘的分区和格式化,那么格式化完了后,如何去⽤它呢?这就涉及到了挂载这块磁盘。格式化后的磁盘其实是⼀个块设备⽂件,类型为b,也许你会想,既然这个块⽂件就是那个分区,那么直接在那个⽂件中写数据不就写到了那个分区中么?当然不⾏。
在挂载某个分区前需要先建⽴⼀个,这个是以⽬录的形式出现的。⼀旦把某⼀个分区挂载到了这个(⽬录)下,那么再往这个⽬录写数据使,则都会写到该分区中。这就需要你注意⼀下,在挂载该分区前,(⽬录)下必须是个空⽬录。其实⽬录不为空并不影响所挂载分区的使⽤,但是⼀旦挂载上了,那么该⽬录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。
mount 挂载设备
先建⽴/test1 /test2 ⽬录,然后在/test1⽬录下建⽴⼀个1.txt⽂件。
把/dev/hdb1分区挂载到/test1⽬录,然后再查看/test1⽬录发下,1.txt不存在了。此时往/test1⽬录下写数据,则会写到/dev/hdb1分区中。在讲mount的-a选项时,我们有必要先了解⼀下这个⽂件 /etc/fstab什么样的减肥方法有用
这个⽂件是系统启动时,需要挂载的各个分区。第⼀列就是分区的label;第⼆列是挂载点;第三列是分区的格式;第四列则是mount的⼀些挂载参数,等下会详细介绍⼀下有哪些参数,⼀般情况下,直接写defaults即可;第五列的数字表⽰是否被dump备份,是的话这⾥就是1,否则就是0;第六列是开机时是否⾃检磁盘,就是刚才讲过的那个fsck检测。1,2都表⽰检测,0表⽰不检测,在Redhat中,这个1,2还有个说法,/ 分区必须设为1,⽽且整个fstab中只允许出现⼀个1,这⾥有⼀个优先级的说法。1⽐2优先级⾼,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1
检测完了后会同时去检测2。下⾯该说说第四列中常⽤到的参数了。
async/sync :async表⽰和磁盘和内存不同步,系统每隔⼀段时间把内存数据写⼊磁盘中,⽽sync则会时时同步内存和磁盘中数据;
auto/noauto :开机⾃动挂载/不⾃动挂载;
default:按照⼤多数永久⽂件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser,async ;
ro:按只读权限挂载;
rw:按可读可写权限挂载;
exec/noexec :允许/不允许可执⾏⽂件执⾏,但千万不要把根分区挂载为noexec,那就⽆法使⽤系统了,连mount命令都⽆法使⽤了,这时只有重新做系统了;
user/nouser :允许/不允许root外的其他⽤户挂载分区,为了安全考虑,请⽤nouser ;
suid/nosuid :允许/不允许分区有suid属性,⼀般设置nosuid ;
usrquota :启动使⽤者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
grquota :启动组磁盘配额模式;
学完这个/etc/fstab后,我们就可以⾃⼰修改这个⽂件,增加⼀⾏来挂载新增分区。例如,笔者增加了这样⼀⾏
/dev/hdb1 /test1 ext3 defaults 0 0
那么系统再重启时就会挂载这个分区了。
讲完了/etc/fstab 我们继续回来讲这个mount,mout -a 如果运⾏了这个命令,则会把/etc/fstab中出现的所有挂载上。所以当你在/etc/fstab⽂件中增加⼀⾏后,你完全可以直接运⾏mount -a 来挂载你增加的那⾏,这样就不⽤重启啦。
你可以使⽤mount -o 选项来重新挂载⼀个分区,并同时指定你想要的选项(即上边介绍fstab第六列中那些)
看到了吧,使⽤了ro选项,则不能新建⽂件了。
再重新挂载⼀次就恢复正常了,如果不加任何其他选项,则就是defaults。
笔者在⽇常的运维⼯作中遇到过这样的情况,⼀台上新装了亮块磁盘,磁盘a(在上显⽰为sdc)和磁盘b(在上显⽰为sdd),有⼀次把这两块磁盘都拔掉了,然后再重新插上,重启机器,结果磁盘编号调换了,a变成了sdd,b变成了sdc(这是因为把磁盘插错了插槽),问题来了。通过上边的学习,你挂载磁盘是通过/dev/hdb1 这样的分区名字来挂载的,如果先前加⼊到了/etc/fstab 中,结果系统启动后则会挂载错分区。那么怎么样避免这样的情况发⽣?
头文字d第6部blkid 这个命令是⽤来显⽰uuid的,uuid其实就是⼀⼤串字符,在linux系统中每⼀个分区都会有唯⼀的⼀个uuid。说到这,聪明的你想到了吧,没有错,我们就⽤这唯⼀的uuid来挂载。
这个命令笔者只是⽤来显⽰uuid,没有其他⽤途所以不做详细介绍,当然你也可以在命令后边跟某⼀个分区,只显⽰该分区的uuid。
看到了吧,其实是很好⽤的。那么怎么让它也开机启动?很简单,把刚才敲的mount 磁盘的命令直接写到 /etc/rc.d/rc.local ⽂件即可。对了,笔者到现在还没有给你讲过这个rc.local⽂件的作⽤。简单点说,系统启动完后会执⾏这个⽂件中的命令。所以只要你想开机后运⾏什么命令统统写⼊到这个⽂件下⾯吧。
其实这个⽂件就是⼀个shell 脚本,以后笔者会单独⽤⼀章来介绍它。⾏开头的”#”是注释的意思,代表这⾏在这个脚本中不⽣效。你想让系统开机后运⾏什么命令,就把什么命令写到这⾥⾯来。就⽐如
刚才笔者挂载的那条命令。你可以这样实现:
mount 还有⼀个⽐较常⽤的选项就是-t ,后边指定⽂件系统的类型,⽐如挂载时就需要指定 vfat,⽽挂载光盘时就需要指定iso9660,但在笔者多年来的经验,⽬前的系统都是智能识别所要挂载分区的系统格式类别的。也就是说,⽤不着你去指定,它会⾃动判断的。
umount 卸载设备
现在你学会了如何挂载⼀个设备,那么如何去卸载⼀个设备呢,这就要⽤到umount了,这个命令也简单的很,后边可以跟挂载点,也可以跟分区名(/dev/hdb1)
有时也许你会遇到⽐较难卸载的设备,就像在windows下⽆法删除U盘⼀样,教你⼀个特管⽤的⽅法就是 umount -l /dev/hdb1 ,这个-l选项有强制卸载的意思,你⼀定要记住哦,⾮常有⽤的。
【建⽴⼀个swap⽂件】
从装系统时就接触过这个swap了,前⾯也说过它类似与windows的虚拟内存,分区的时候⼀般⼤⼩为内存的2倍,如果你的内存超过4G,那么你分8G似乎是没有必要了。分4G⾜够⽇常交换了。然⽽,还会有虚拟内存不够⽤的情况发⽣。如果真遇到了,莫⾮还要重新分⼀下磁盘?当然不能!那我们就增加⼀个虚拟的磁盘出来。
基本的思路就是:建⽴swapfile 格式化为swap格式启⽤该虚拟磁盘
利⽤dd 来创建⼀个419M的⽂件/tmp/newdisk出来,其中if代表从哪个⽂件读,/dev/zero是linux下特有的⼀个0⽣成器,of表⽰输出到哪个⽂件,bs即块⼤⼩,count则定义有多少个块。
mkswap 这个命令是专门格式化swap格式的分区的,这个命令⽤的时候⼀定要看清楚了,否则把其他分区给格式化错了就只有哭了。
free 是⽤来查看系统内存以及虚拟内存使⽤情况的,-m选项是以M的形式查看。可以看到当前系统的。⽽swapon 是启⽤我们新建的swap⽂件,启⽤后再⽤free查看发现多了400M。
我们还可以⽤swapoff 关闭启⽤的swap⽂件。
【磁盘配额】
磁盘配合其实就是给每个⽤户分配⼀定的磁盘额度,只允许他使⽤这个额度范围内的磁盘空间。在linux系统中,是多⽤户多任务的环境,所以会有很多⼈共⽤⼀个磁盘的情况。针对每个⽤户去限定⼀定量的磁盘空间是有必要的,这样才显得公平。
在linux中,⽤来管理磁盘配额的东西就是quota了。如果你的linux上没有quota,则需要你安装这个软
在职研究生考试条件件包 quota-3.13-5.el5.RPM (其实版本是多少⽆所谓了,关键是这个软件包)。quota在实际应⽤中是针对整个分区进⾏限制的。如果你的/dev/hda3 是挂载在/home ⽬录下的,那么/home 所有⽬录都会受到限制。
quota 这个模块主要分为quota quotacheck quotaoff quotaon quotastats edquota setquota warnquota repquota这⼏个命令,下⾯就分别介绍这些命令。
瓜酪quota ⽤来显⽰某个组或者某个使⽤者的限额。
语法:quota [-guvs] [user,group]
-g :显⽰某个组的限额
-u :显⽰某个⽤户的限额
-v :显⽰的意思
-s :选择inod或硬盘空间来显⽰
quotacheck ⽤来扫描某⼀个磁盘的quota空间。
语法:quotacheck [-auvg] /path
-a :扫描所有已经mount的具有quota⽀持的磁盘
-u :扫描某个使⽤者的⽂件以及⽬录
-g :扫描某个组的⽂件以及⽬录
-v :显⽰扫描过程
-m :强制进⾏扫描
edquota ⽤来编辑某个⽤户或者组的quota值。
语法:edquota [-u user] [-g group] [-t]
edquota -p user -u user
-u :编辑某个⽤户的quota
-g :编辑某个组的quota
-
t :编辑宽限时间
-p :拷贝某个⽤户或组的quta到另⼀个⽤户或组
当运⾏edquota -u user 时,系统会打开⼀个⽂件,你会看到这个⽂件中有7列,它们分别代表的含义是:
Filesystem :,如/dev/hda3
blocks :当前⽤户在当前的Filesystem中所占⽤的磁盘容量,单位是Kb。该值请不要修改。
soft/hard :当前⽤户在该Filesystem内的quota值,soft指的是最低限额,可以超过这个值,但必须要在宽限时间内将磁盘容量降低到这个值以下。hard指的是最⾼限额,即不能超过这个值。当⽤户的磁盘使⽤量⾼于soft值时,系统会警告⽤户,提⽰其要在宽限时间内把使⽤空间降低到soft值之下。
inodes :⽬前使⽤掉的inode的状态,不⽤修改。
quotaon 启动quta,在编辑好quota后,需要启动才能是quta⽣效
语法:quotaon [-a] [-uvg directory]
-
a :全部设定的quota启动
-u :启动某个⽤户的quota
-g :启动某个组的quota
-s :显⽰相关信息
quotaoff 关闭quota
该命令常⽤只有⼀种情况 quotaoff -a 关闭全部的quota
以上讲了很多quota的相关命令,那么接下来笔者教你如何在实践应⽤中去做这个磁盘配额。整个执⾏过程如下:
⾸先先确认⼀下,你的/home⽬录是不是单独的挂载在⼀个分区下,⽤df 查看即可。如果不是则需要你跟我⼀起做。否则这⼀步即可省略。笔者的linux系统中,/home并没有单独占⽤⼀个分区。所以需要把/home⽬录挂载在⼀个单独的分区下,因为quota是针对分区来限额的。笔者⽤fdisk -l 查看⽬前/dev/hdb 磁盘有5个可⽤分区,所以笔者打算把/dev/hdb1挂载在/home ⽬录下
看到了吧,⽬前笔者的/home⽬录已经是⼀个单独的分区了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论