Linux磁盘分区工具
硬盘可以分成若干个分区,每个分区可视为独立的磁盘来使用。硬盘的分区方案被记录到“磁盘分区表”中,通常该表由4个部分组成,每个部分定义一个分区的信 息,因此原始概念中一个硬盘最多只能建立4个分区,称为“主分区”。由于硬盘越来越大,4个分区已不无法满足用户的需要,为此引入“扩展分区”的概念。扩 展分区由扩展磁盘分区表维护,可以把某个主分区作为扩展分区划分为若干更小的“逻辑分区”。理论上,硬盘空间足够时,可以建立任意数量的分区。
Linux上建议的分区有:swap分区,即虚拟内存;boot分区,存放操作系统的内核;根分区,整个操作系统的根目录;/var分区,可以避免日志文件的大小失控;/home分区,控制用户占用的空间大小。
磁盘分区工具有:
fdisk:强大的磁盘分区工具,不仅适合于Linux,在 Windows及MS-DOS中也有广泛应用。-l显示当前设备的分区表。-s /dev/sda1显示指定分区的大小。-s /dev/sda显示设备所有分区大小的总和。-v显示fdisk的版本号。fdisk /dev/sda可以进入命令交互模式,内部命令包括m:显示命令帮助;p:显示当前分区表;q:退出;等等。)
parted:Linux下的磁盘分区与分区调整工具。parted /dev/sda可进入交互模式。
sfdisk:-l显示分区信息。-s显示磁盘或分区大小。
常用的磁盘管理命令:
badblocks:检查设备坏块。(-s 显示检查进度。)
du:统计文件和目录占用的磁盘空间。(如果没有指定文件或目录名,则默认对当前目录进行统计。-s仅显示文件或目 录占用的块数,默认一块等于1024字节。-b以字节为单位进行统计;-k以1024字节为单位;-m以1024K为单位;-c同时显示总计;-h按需显 示K、M或G。-a显示所有文件及其子目录占用的数据块数。例:du ~tommy,统计tommy的主目录。)
df:显示文件系统磁盘空间使用情况。(不指定文件系统的话,则显示所有当前挂载的文件系统的可用空间。默认情况下 空间以1KB为单位进行显示,除非环境变量POSIXLY_CORRECT被指定,此时以512字节为单位。-i以inode模式显示,列出的都为 inode数量;-h以可读方式显示,按需显示K、M或G;-t type只显示指定文件系统的信息,如df -t ext3;-x type与-t相反,不显示指定的磁盘类型的磁盘。)
fdformat:格式化磁盘。(-n表示格式化完成后不进行验证。)
hdparam:显示和设定硬盘参数。(-C显示电源管理,-d 1开启DMA模式。例:hdparm /dev/sda1。)
mkfs:设置磁盘的文件系统。(例:mkfs -t ext4 /dev/sda2。)
mkswap:设置交换分区(swap area)。(例:mkswap /dev/hda4,将hda4指定为一个新式的交换分区。-c在创建交换分区前检查坏块;-v0建立一个旧式的交换区,-v1建立一个新式的交换区。)
mkisofs:建立ISO9660/JOLIET/HTS文件系统。(例:mkisofs -o myiso myfile把myfile制作为名为myiso的镜像文件。)
mkinitrd:创建ramdisk的镜像文件。(例:mkinitrd myfile.img 2.2.5-15建立名为myfile.img、内核号为2.2.5-15的镜像文件。ubuntu上不支持。)
mt:磁带驱动操作。(语法:mt operation device。操作有rewind、erase等。rmt命令是远端磁带传输协议模块,可以通过进程间通信,远程控制磁带机进行备份、恢复备份操作。)
mzip:弹出Zip/Jaz设备中的磁盘。(-e弹出磁盘;-f与-e同时使用强制弹出;-q查询状态。)
sync:将缓冲区内的数据写入磁盘。(在卸载移动硬盘前,可用sync把内存数据写入磁盘。)
rsync:远程同步。(例:rsync -av -e ssh /home/share/*.doc root@teacher.example.com:/usr/local/share通过ssh把/home/share下的所有doc文件备份到了 teacher主机的/usr/local/share目录下。只同步修改过的文件和目录。-a:归档模式;-v:冗余模式。)
磁盘配额管理:
/etc/fstab文件:定义分区的挂载方式。(文件格式 为:<file system> <mount point> <type> <options> <dump> <pass>。例:/dev/sda1 / ext4 errors=remount-ro,user_xattr 0 1。要启用磁盘配额管理,则需要添加usrquota和grpquota选项,例:/dev/sda2 /mnt/disk ext4 defaults,usrquota,grpquota
0 1。更改该文件后,需要reboot或者重新挂载使得配置文件生效:mount -o remount /dev/sda2。注意,当新的分区建立后,需要使用mkfs指定该分区的文件类型,否则挂载时会出现找不到文件系统的错误。)
quotacheck:检查磁盘的使用空间与限制。(在修改/etc /fstab文件并添加usrquota与grpquota选项后,可以使用命令quotacheck -avugc来创建aquota.user和aquota.group这两个文件,其中-c表示重新创建配额文件,-a扫描在/etc/mtab文件中所 有挂载的非NFS文件系统;-u计算每个用户占用的目录和文件数目,并创建aquota.user文件;-g计算每个用户组占用的目录和文件数目,并创建
aquota.group文件;-v显示命令执行过程。/etc/mtab与/etc/fstab内容类似,/etc/fstab表示系统开机时默认加载 的分区,而/etc/mtab表示目前系统加载中的分区。创建出来的aquota.user和aquota.group文件位于启用usrquota和 grpquota选项的分区所挂载的位置,如/mnt/disk。)
edquota:对用户或用户组设置磁盘配额。 (aquota.user和aquota.group文件太复杂,无法直接编辑,只能用edquotaa命令编辑。-u username设置用户的磁盘配额,-g groupname设置用户组的磁盘配额。默认情况下-u被使用。文件格式为:Filesystem blocks soft hard inodes soft hard,其中bolocks为用户已使用的空间,以块为单位,一块为1024字节,相应的inodes为已使用的i结点数。soft为软限制,当用户达
到此限制时,系统会发出警告信息,但用户仍然可以继续使用;hard为硬限制,到达此限制时用户就无法写入了。前面的soft、hard对应block的 软、硬限制,而后面的soft、hard对应inode的软、硬限制。-p复制配额设置,如edquota -p usr1 -u usr2 usr3;-t设置软时间限制。)
quota:显示磁盘已使用的空间与配额限制。(-u查看用户,为默认选项;-g查看用户组。)
quotaoff:关闭磁盘空间限制。(-a关闭所有在/etc/fstab列出的磁盘配额;-g用户组配额;-u用户配额;-p列出状态。)
quotaon:启动磁盘空间配额限制。(语法与quotaoff一样。)
quotastats:显示磁盘空间的限制。
repquota:对文件系统的磁盘配额情况进行统计。
逻辑卷管理(LVM)
LVM中相关的定义有:
物理卷(Physical volume,PV)相当于硬盘驱动器的一个标准主分区或逻辑分区;
物理盘区(Physical extent,PE)就是一块磁盘空间。物理卷被划分成多个同等大小的PE;
逻辑卷(Logical volume,LV)是LE的集合;
逻辑盘区(Logical extent,PE)和一个PE相对应,大小相同;
卷组(Volumn group,VG)是LV的集合。
pvdisplay:查看组成LVM卷的物理卷。
pvcreate:创建物理卷。(可以在硬盘上或其中某个分区上创建。)
vgcreate:创建卷组。(例:vgcreate myvolumn /dev/sdd1 /dev/sdc2。其中sdd1和sdc2都为物理卷。)
vgextend:在卷组里添加一个新的物理卷。(例:vgextend myvolumn /dev/sdd3。)
lvdisplay:查看逻辑卷。
lvcreate:创建一个逻辑卷。(例:lvcreate -l 50 myvolumn -n mylogical创建一个/dev/myvolumn/mylogical的新设备,可以用于挂载:mkfs -j /dev/myvolume/mylogical,mount -t ext3 /dev/myvolumn/mylogical /mnt/mynewdisk。-l 50表示大小为50个PE,每个PE大小可能为4.0M,而-L指定LV的size。-n指定LV的名字。)
lvextend:扩展逻辑卷。(如果有多余的PE,可以扩展逻辑卷的大小。例:lvextend -L 800M /dev/myvolumn/mylogical。)