总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例

命令总结:

  磁盘管理命令:

      磁盘分区工具:fdisk,parted,sfdisk

fdisk的使用:

最多支持在一块硬盘上的15个分区;

       分区管理子命令:

p: 显示

n: 创建

d: 删除

t: 修改分区ID

l: 列出所有支持ID类型

w: 保存退出

q: 放弃修改并退出

m: 获取帮助

[root@localhost ~]# fdisk /dev/sda    \\建立分区
Command (m for help): n      
Command action            \\选择创建扩展分区,先要创建扩展分区后才可穿建逻辑分区
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 4          
First cylinder (1-15665, default 1): 1           \\选择分区起始及结尾
Last cylinder, +cylinders or +size{K,M,G} (1-63, default 63): +10G  
Command (m for help):w         \\w保存退出

创建完成之后,查看内核是否已经识别新的分区:

# cat /proc/partitions


有三个命令可以让内核重读磁盘分区表:

CentOS 5: partprobe [DEVICE]

CentOS 6,7: 

partx

kpartx


partx命令:

partx DEVICE

partx -a DEVICE

partx -a -n M:N DEVICE

M

M:

:N

       kpartx命令:

kpartx -af DEVICE

Linux文件系统管理命令:

mkfs, mkfs -t type = mkfs.type


ext:mke2fs


创建文件系统:

mke2fs [OPTION]... DEVICE

-t {ext2|ext3|ext4}

-b {1024|2048|4096}

-L 'LABEL'

-j: mke2fs -t ext3

-i #:

-N #:

-m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;

-O FEATURE[,...]

-O ^FEATURE:关闭此特性

has_journal


文件系统属性查看及调整工具:

e2label

e2lable DEVICE [LABEL]

tune2fs

显示ext系列文件系统的属性,或调整其属性;

-l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;

-L 'LABEL':修改卷标;

-m #: 调整预留给管理员的管理空间百分比;

-j: ext2 --> ext3

-O:文件系统属性的启动或关闭 

-o:文件系统默认挂载选项的启用或关闭

[root@localhost ~]# tune2fs -L 'yule' /dev/sda1     \\用tune2fs修改卷标名为yule
tune2fs 1.41.12 (17-May-2010)

dumpe2fs:

-h: 仅显示超级块信息;

          

blkid命令:

blkid DEVICE

  LABEL, UUID, TYPE

[root@localhost ~]# blkid /dev/sda1   \\使用blkid查看分区UUID TYPE及卷标(即分区名)。
/dev/sda1: UUID="5b5b8adf-c3a0-438b-a3e2-46249e8b32fb" TYPE="ext4"

文件系统检测:

fsck: Filesystem check

fsck -t type

fsck.type

-a: 自动修复错误

-r: 交互式修复错误

-f: 强制检测


e2fsck:ext系列文件系统专用的检测修复工具;

-y: 自动回答为“yes”

-f:force

文件系统的挂载和使用:

将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为,称之为挂载;

解除此关联关系的过程:卸载;

挂载点:mount point, 设备挂载至目录;

注意:挂载点在挂载在之后,其内部原有的文件会被暂时隐藏;建立使用空目录做为挂载点;

挂载方法:

mount:通过读取/etc/mtab文件来显示当前系统所有已经挂载的设备;

mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;

mount [options] [-o options] DEVICE MOUNT_POINT

[options]:命令选项

[-o options]:挂载选项

DEVICE: 要挂载的设备

(1) 设备文件:/dev/sda5

(2) 卷标:-L 'LABEL'

(3) UUID:-U 'UUID'

(4) 伪文件系统名称

MOUNT_POINT: 挂载点

常用选项:

-t type:文件系统类型

-r: 以“只读”方式挂载此文件系统

-w: 以“读写”方式挂载此文件系统

-n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;

此时,如果想查看挂载的所有文件系统:cat /proc/mounts

-a: 自动挂载所有支持自动挂载的设备;

-B:绑定目录至另一个目录上;

     -o 挂载选项:

async:异步模式

sync: 同步模式

atime/noatime:是否更新访问时间戳;

diratime/nodiratime:是否更新目录的访问时间戳;

auto/noauto: 是否允许此设备被自动挂载;

exec/noexec:是否允许执行此文件系统上应用程序;

dev/nodev:是否支持在此设备上使用设备文件;

suid/nosuid:

remount:重新挂载

ro

rw

user/nouser: 是否允许普通挂载此设备;

acl:是否支持此设备上使用facl;

defaults:rw, suid, dev, exec, auto, nouser, and async

umount:卸载命令

# umount DEVICE

# umount MOUNT_POINT

查看正在访问指定挂载点的进程:

# fuser -v MOUNT_POINT

终止所有正在访问指定的挂载点的进程:

# fuser -km MOUNT_POINT


交换分区:

free命令:

查看memory和swap的使用状态

-m: 以MB为单位

-g: 以GB为单位 

mkswap:创建交换分区

mkswap [option] DEVICE

-L 'LABEL'

swapon:启用交换分区

swapon [option] [DEVICE]

-a: 激活所有交换分区

-p PRIORITY: 设定其优先级;

swapoff:禁用交换分区

swapoff [option] [DEVICE]


文件系统等空间占用信息的查看工具:

df: disk free

-h: human-readable

-i: inode数量

-P: 以Posix兼容的格式输出

du: disk usage

-h: human-readable

-s: summary


文件系统相关挂载配置文件:/etc/fstab


每行定义一个文件系统;

要挂载的设备或伪文件系统  挂载点 文件系统类型 挂载选项 转储频率  自检次序

要挂载的设备:

设备文件、LABEL=、UUID=、伪文件系统名称

挂载选项:

defaults

转储频率:

0: 不转储

1: 每天转储

2: 每隔一天转储

自检次序:

0:不自检

1:首先自检,通常只有/才为1

2:

...

符号链接:

链接文件的数据指向另一个文件路径;

可以对目录进行;

可以跨分区;

指向的是另一个文件路径;而非inode;

对文件创建符号链接不会增加其引用计数;删除原文件,符号链接文件也将失效;

ln [-s] SRC DEST

-s:symbolic link 

-v:verbose


创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录

[root@localhost ~]# fdisk /dev/sda     \\创建10G的文件系统分区

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00085376

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6553    52428800   8e  Linux LVM

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (6553-15665, default 6553): 
Using default value 6553
Last cylinder, +cylinders or +size{K,M,G} (6553-15665, default 15665): +10G

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00085376

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6553    52428800   8e  Linux LVM
/dev/sda3            6553        7858    10484761   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0  125829120 sda
   8        1     204800 sda1
   8        2   52428800 sda2
 253        0   29356032 dm-0
 253        1    2097152 dm-1
 253        2   20971520 dm-2
[root@localhost ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
[root@localhost ~]# partx -a /dev/sda3     \\添加新建分区到内核
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# cat /proc/partitions    \\查看内核是否识别
major minor  #blocks  name

   8        0  125829120 sda
   8        1     204800 sda1
   8        2   52428800 sda2
   8        3   10484761 sda3
 253        0   29356032 dm-0
 253        1    2097152 dm-1
 253        2   20971520 dm-2
[root@localhost ~]# mke2fs -t ext4 /dev/sda3     \\修改分区type为ext4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621190 blocks
131059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /mydata     
[root@localhost ~]# mount /dev/sda3 /mydata
[root@localhost ~]# df -TH     \\查看分区属性信息
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vol0-root
                     ext4    30G  397M   28G   2% /
tmpfs                tmpfs  515M   78k  515M   1% /dev/shm
/dev/sda1            ext4   199M   38M  152M  20% /boot
/dev/mapper/vol0-usr ext4    22G  3.2G   17G  16% /usr
/dev/sda3            ext4    11G   24M  9.9G   1% /mydata
[root@localhost ~]# vim /etc/fstab    \\编辑此文件做重启自动挂载
#
# /etc/fstab
# Created by anaconda on Mon Sep  7 23:06:37 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vol0-root   /                       ext4    defaults        1 1
UUID=7ae1abef-3d62-4c11-8c6d-f3b776696d61 /boot                   ext4    defaults        1 2
/dev/mapper/vol0-usr    /usr                    ext4    defaults        1 2
/dev/mapper/vol0-swap   swap                    swap    defaults        0 0
/dev/sda3               /mydata                 ext4    defaults        0 0 \\添加此行
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0