xdays

Linux 磁盘操作

August 04, 2010

硬盘有哪些组成部分?

这里指的是与存储相关的结构,从大到小依次包括,柱面—磁道—扇区。柱面是指硬盘盘面半径相同的所有磁道,它也是划分分区的单位;磁道就是盘面上的圆 圈;扇区是硬盘上的最小物理存储单位,一般为 512 字节。再来说一下 MBR(master boot record),硬盘的 0 柱面、0 磁头、1 扇区,即硬盘的第一个扇区。这 512 字节有重要信息,前 446 字节为存储引导程序(boot loader)像 grub,lilo 等,接着 64 字节叫做 DPT(disk patition table)来存储硬盘分区的信息,最后两字节固定为 55AA。

文件系统基本概念有哪些?

节点(inode)和块(block):文件的属性和内容是分开存储的,节点用来存储属性,块用来存储内容包括文件名,而且节点还包括指向块的指针。文件系统就是通过节点和块来定位文件的。

目录(directory)和文件(file):建立目录和文件都需要分配节点和块;目录本质上也是一个文件,只是分配给目录的块存储的是目录内文件的关联性。
超级块(super block):记录文件系统信息的地方,是一个分区最开始的那个块。
组描述(group description),块位图(block bitmap),inode 位图(inode bitmap),inode 表和数据块:这五部分组成了一个块组,而整个分区就是由超级块和块组组成。组描述记录开始,块位图记录块是否可用,inode 位图记录 inode 是否可用,inode 表是 inode 存储区,block 是块存储区。以上描述都可以用 dumpe2fs 命令查看。

与文件系统相关的命令又哪些?

​1) fdisk:分区工具,具体用法可以查看帮助文件,这里需要注意的是分区是可以直接指定分区大小而让程序自己计算从哪个柱面开始哪个结束。
2) mount:挂载工具,将文件系统或者文件系统的一部分挂载到目录树的节点上。特别注意-o 选项的一些参数,放到/etc/fstab 那部分讨论。

  1. fsck,badblocks:磁盘检验,使用时一定要将设备卸载下来。
  2. df,du:查看分区空间和文件大小,常用选项是-sh。

如何设置启动载入分区?

启动载入分区主要是配置/etc/fstab 文件,此文件共有六个字段依次是设备,挂载点,文件系统,选项,备份,检查。这里的选项就是 mount -o 添加的一些选项,比较常用的有:
rw/ro:读写/只读
sync/async:同步/异步磁盘与内存数据
auto/noauto:自动/非自动载入
exec/noexec:是否有可执行权限
user/nouser:是否允许普通用户挂载
suid/nosuid:是否允许 suid 存在
usrquota:用户磁盘配额
grpquota:用户组磁盘配额
default:相当于 rw,suid,exec,auto,nouser,async

什么是磁盘配额?

磁盘配额就是对普通用户使用的磁盘空间进行限制,包括最低限制,最高限制,宽限时间(在最高限制范围内,允许用户超过最低限制的时间)。另外注意:磁盘配额是针对分区的;不能对 root 用户执行配额。

如何配置磁盘配额?

首先要在挂载相应分区时添加 usrquota 参数使其支持磁盘配额;然后通过相应命令编辑用户的配额;最后查看检查相应的配额设置。

不同版本的编辑命令不太一样,但是达到的目的都是一样的。这里列举 redhat 下的执行命令,具体还是看手册:
#quota -ugvsl  查看磁盘配额
#quotacheck -augvM 扫描磁盘的配额空间
# edquota -ugtp  编辑用户(组)的限额值和宽限时间
#quotaon/quotaoff -aug 开启和关闭磁盘配额