磁盘分区命名方式
在Linux中,每一个硬件设备都映射到一个系统文件,包括硬盘、光驱等IDE或SCSI设备。Linux把各种IDE设备分配了一个由hd前缀组成的文件。而各种SCSI设备则被分配了一个由sd前缀组成的文件,编号方法为拉丁字母表顺序。例如,第一个IDE设备,Linux定义为hda,第二个IDE设备iu定义为hdb;以此类推。
在Linux中规定,每一个硬盘设备最多能有4个主分区(其中包含扩展分区)。任何一个扩展分区都要占用一个主分区号码。编号方法为阿拉伯数字顺序。需要注意的是,主分区按1234编号,扩展分区中的逻辑分区,编号直接从5开始,无论是否有2号或者3号主分区。对于第一个IDE硬盘的第一个主分区,则编号为hda1,而第二个IDE硬盘的第一个逻辑分区应为hdb5.
磁盘管理命令
Linux磁盘管理常用三个命令为df、du和fdisk。
df:列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
fdisk:用于磁盘分区
df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]
选项与参数:
- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
- -k :以 KBytes 的容量显示各文件系统;
- -m :以 MBytes 的容量显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -H :以 M=1000K 取代 M=1024K 的进位方式;
- -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
- -i :不用硬盘容量,而以 inode 的数量来显示
du
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:
du [-ahskm] 文件或目录名称
选项与参数:
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :列出总量而已,而不列出每个各别的目录占用容量;
- -S :不包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
fdisk
fdisk 是 Linux 的磁盘分区表操作工具。
语法:
fdisk [-l] 装置名称
选项与参数:
- -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
挂载磁盘分区
要使用磁盘分区,就需要挂载该分区。挂载时需要指定需要挂载的设备和挂载目录。挂载磁盘分区的命令为mount,常用的命令格式为
mount -t type device dir
选项 -t 的参数type为文件系统格式,如ext4、vfat、ntfs等;参数device为设备名称;参数dir为挂载目录,成功挂载后,就可以通过访问该目录以访问该分区内的文件。只要是未被使用的目录,都可以用于挂载分区。
卸载磁盘分区
要移除磁盘,例如卸载USB磁盘、光盘或者某一硬盘分区,首先需要卸载该分区。卸载磁盘的命令为umount。常用的命令格式如下:
umount [device | dir]
卸载时只需要一个参数,可以用于设备名称,也可以是挂载点。例如,卸载一个光驱设备"/dev/hdc".该设备挂载于"/mnt/cdrom".那么既可以直接卸载该设备。也可以通过其挂载的目录卸载例如:
umount /dev/hdc
umount/mnt/cdrom
查看磁盘的分区信息
查看磁盘的挂载情况——mount
查看磁盘的挂载情况很简单,直接输入不带参数的mount命令即可。
mount参数说明:
- -V:显示程序版本
- -h:显示辅助讯息
- -v:显示较讯息,通常和 -f 用来除错。
- -a:将 /etc/fstab 中定义的所有档案系统挂上。
- -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
- -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
- -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
- -s-r:等于 -o ro
- -w:等于 -o rw
- -L:将含有特定标签的硬盘分割挂上。
- -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
- -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
- -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
- -o sync:在同步模式下执行。
- -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
- -o auto、-o noauto:打开/关闭自动挂上模式。
- -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
- -o dev、-o nodev-o exec、-o noexec允许执行档被执行。
- -o suid、-o nosuid:
- 允许执行档在 root 权限下执行。
- -o user、-o nouser:使用者可以执行 mount/umount 的动作。
- -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
- -o ro:用唯读模式挂上。
- -o rw:用可读写模式挂上。
- -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
分区的格式化
分区完成后,需要对文件系统格式化才能正常使用。格式化磁盘主要的命令是mkfs。
格式化交换分区的命令略有不同,不是mkfs而是mkswap。
分区类型和格式化的类型需要匹配,否则可能导致分区无法正常使用。
检查和修复磁盘分区
对于没有正常卸载的磁盘,如遇突然断电的情况,可能损坏我呢见系统目录结构或其中文件损坏。检查可修复洗盘分区的命令为fsck。
fsck 参数如下:
- filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)
- -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
- -s : 依序一个一个地执行 fsck 的指令来检查
- -A : 对/etc/fstab 中所有列出来的 partition 做检查
- -C : 显示完整的检查进度
- -d : 列印 e2fsck 的 debug 结果
- -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
- -R : 同时有 -A 条件时,省略 / 不检查
- -V : 详细显示模式
- -a : 如果检查有错则自动修复
- -r : 如果检查有错则由使用者回答是否修复
磁盘配额管理
为了使系统按照配额进行工作,必须建立磁盘配额文件aquota.group和aquota.user。使用quotacheck命令可以完成配额文件的自动创建。
quotacheck参数如下:
- -a 扫描在/etc/fstab文件里,有加入quota设置的分区。
- -d 详细显示指令执行过程,便于排错或了解程序执行的情形。
- -g 扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目。
- -R 排除根目录所在的分区。
- -u 扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目。
- -v 显示指令执行过程。
对用户和用户组设置磁盘配额
对磁盘配额的限制一般是从占用磁盘大小和所有文件的数量两个方面来进行的。限制主要分为软限制和硬限制两种。
软限制:一个用户在文件系统可拥有的最大磁盘空间和最多文件数量,在某个宽限期内可以暂时超过这和限制。
硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不允许超过这个限制。
设置磁盘配额的限制可以用edquota命令,其参数如下:
- -u 设置用户的磁盘配额,这是预设的参数。
- -g 设置群组的磁盘配额。
- -p<源用户名称> 将源用户的磁盘配额设置套用至其他用户或群组。
- -t 设置宽限期限。