一、查看磁盘与目录的容量
1、列出文件系统的整体磁盘使用量:df [-akmhHTi] 目录或文件名
可选参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i :不用磁盘容量,而以 inode 的数量来显示
2、查看文件系统的磁盘使用量:du [-ahsSkm] 目录或文件名
可选参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
二、实体链接与符号链接:ln
1、实体链接(hard link):通过文件系统的inode链接来产生新文件名,而不是产生新文件。举个例子来说,假设我系统有个 /root/crontab 他是 /etc/crontab 的实体链接,也就是说这两 个文件名链接到同一个 inode , 自然这两个文件名的所有相关信息都会一模一样(除了文件 名之外)。
实体链接的限制:
- 不能跨Filesystem;
- 不能link目录
2、符号链接(Symbolic Link):类似Windows的捷径功能的文件,可以让你快速的链接到目标文件或目录。基本上, Symbolic link 就是在创建一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件的文件名!由于只是利用文件来做为指向的动作,所以,当来源文件被删除之后,Symbolic link 的文件会“开不了。
3、创建链接:ln [-sf] 来源文件 目标文件
可选参数:
-s :如果不加任何参数就进行链接,那就是hard link,至于 -s 就是symbolic link。
-f :如果目标文件存在时,就主动的将目标文件直接移除后再创建!
基本上, Symbolic link 的用途比较广,所以您要特Symbolic link 的用法。
三、磁盘的分区、格式化、检验和挂载。
1、我们要在系统里面新增一颗磁盘时,应该要做那些操作?
1)、 对磁盘进行分区,以创建可用的 partition ;
2)、 对该 partition 进行格式化 (format),以创建系统可用的 filesystem;
3)、 若想要仔细一点,则可对刚刚创建好的 filesystem 进行检验;
4)、 在 Linux 系统上,需要创建挂载点 (亦即是目录),并将他挂载上来;
2、列出系统上所有磁盘列表:lsblk [-dfimpt] [设备名]
可选参数:
-d :仅列出磁盘本身,并不会列出该磁盘的分区数据
-f :同时列出该磁盘内的文件系统名称
-i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-m :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
-p :列出该设备的完整文件名!而不是仅列出最后的名字而已。
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等
3、列出设备的UUID等参数:blkid
UUID 是全域单一识别码 (universally unique identifier),Linux 会将系统内所有的设备都给予一个独一无二的识别 码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用了。
4、查看磁盘的分区表类型与分区信息:parted
5、磁盘分区:gdisk/fdisk
MBR 分区表请使用 fdisk 分区, GPT 分区 表请使用 gdisk 分区
- gdisk 设备名称
做这些操作之前应该先用lsdlk或blkid查找磁盘,再用parted /dev/xxx print 找出内部分区表类型,之后才选用gdisk或fdisk。上表中可以发现 gdisk 会扫描 MBR 与 GPT 分区 表,不过这个软件还是单纯使用在 GPT 分区表比较好。
我们可以 p 打印以下看看:
增加新的分区:n
因为我的磁盘分区表是MBR,所以没用写入:w
退出分区:q
- fdisk 设备名称
功能几乎和上面的gfisk差不多
添加分区:n
6、查看和新分区信息:cat /proc/partitions
7、写入分区信息后要用更新核心分区表:partprobe -s
8、磁盘格式化(创建文件系统)
- 格式化为 XFS 文件系统: mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] \ [-r parms] 设备名称
可选参数:
-b :后面接的是 block 容量,可由 512 到 64k,不过最大容量限制为 Linux 的 4k 喔!
-d :后面接的是重要的 data section 的相关参数值,主要的值有:
agcount=数值 :设置需要几个储存群组的意思(AG),通常与 CPU 有关
agsize=数值 :每个 AG 设置为多少容量的意思,通常 agcount/agsize 只选一个设置即可
file :指的是“格式化的设备是个文件而不是个设备”的意思!(例如虚拟磁盘)
size=数值 :data section 的容量,亦即你可以不将全部的设备容量用完的意思
su=数值 :当有 RAID 时,那个 stripe 数值的意思,与下面的 sw 搭配使用
sw=数值 :当有 RAID 时,用于储存数据的磁盘数量(须扣除备份碟与备用碟)
sunit=数值 :与 su 相当,不过单位使用的是“几个 sector(512Bytes大小)”的意思
swidth=数值 :就是 su*sw 的数值,但是以“几个 sector(512Bytes大小)”来设置
-f :如果设备内已经有文件系统,则需要使用这个 -f 来强制格式化才行!
-i :与 inode 有较相关的设置,主要的设置值有:
size=数值 :最小是 256Bytes 最大是 2k,一般保留 256 就足够使用了!
internal=[0|1]:log 设备是否为内置?默认为 1 内置,如果要用外部设备,使用下面设置 logdev=device :log 设备为后面接的那个设备上头的意思,需设置 internal=0 才可!
size=数值 :指定这块登录区的容量,通常最小得要有 512 个 block,大约 2M 以上才行!
-L :后面接这个文件系统的标头名称 Label name 的意思!
-r :指定 realtime section 的相关设置值,常见的有:
extsize=数值 :就是那个重要的 extent 数值,一般不须设置,但有 RAID 时, 最好设置与 swidth 的数值相同较佳!最小为 4K 最大为 1G 。
- 格式化为 EXT4 文件系统: mkfs.ext4 [-b size] [-L label] 设备名称
可选参数:
-b :设置 block 的大小,有 1K, 2K, 4K 的容量,
-L :后面接这个设备的标头名称。
9、文件系统检验
- 处理 XFS 文件系统:xfs_repair [-fnd] 设备名称
可选参数:
-f :后面的设备其实是个文件而不是实体设备
-n :单纯检查并不修改文件系统的任何数据 (检查而已)
-d :通常用在单人维护模式下面,针对根目录 (/) 进行检查与修复的动作!很危险!不要随便使用
- 处理 EXT4 文件系统:fsck.ext4 [-pf] [-b superblock] 设备名称
可选参数:
-p :当文件系统在修复时,若有需要回复 y 的动作时,自动回复 y 来继续进行修复动作。
-f :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入 细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
-D :针对文件系统下的目录进行最优化配置。
-b :后面接 superblock 的位置!一般来说这个选项用不到。但是如果你的 superblock 因故损毁时, 通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。一般来说,superblock 备份在: 1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768
10、文件系统的挂载和卸载
挂在前应注意的几点:
- 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
- 单一目录不应该重复挂载多个文件系统;
- 要作为挂载点的目录,理论上应该都是空目录才是。
文件系统挂载:mount [-t 文件系统] UUID='' 挂载点
将设备文件卸载:umount [-fn] 设备文件名或挂载点
可选参数:
-f :强制卸载!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-l :立刻卸载文件系统,比 -f 还强!
-n :不更新 /etc/mtab 情况下卸载。
11、开机挂载:/etc/fstab
将挂载信息写入到/etc/fstab:nano /etc/fstab
例如:[root@study ~]# nano /etc/fstab
UUID="e0fa7252-b374-4a06-987a-3cb14f415488" /data/xfs xfs defaults 0 0