17单元 —— Linux 磁盘与文件系统管理

磁盘与目录的容量

df : 列出文件系统的整体磁盘使用量

  • -a ,列出所有的文件系统,包括系统特有的 /proc 等文件系统
  • -h ,以较易读的 GBytes 、Mbytes 、KBytes 等格式自行显示
  • -H ,以 M=1000k 替换 M=1024k 的进位方式
  • -i ,不用磁盘容量,而以 indoe 的数量来显示

df 命令输出信息:

  • Filesystem:代表该文件系统是在哪个硬盘分区,所以列出设备名称;
  • 1k-blocks:说明下面的数字单位是1KB ,可利用 -h / -m 来改变容量;
  • Used:使用掉的磁盘空间;
  • Available:剩余磁盘空间大小;
  • Used%:磁盘使用率;
  • Mounted on:磁盘的挂载目录(挂载点);

 

文件查找

find 命令 :直接从硬盘查找

1 )与使用者或用户组名称有关参数

  • -uid n:n 为数字,即使用者UID ,UID记录在 /etc/passwd
  • -gid n:n 为数字,即用户组名称GID ,GID记录在 /etc/group
  • -user name:使用者账号名称
  • -group name:用户组名称
  • -nouser:查找文件的拥有者不在 /etc/passwd
  • -ngroup:查找文件的拥有组不在 /etc/group

2 )与文件权限及名称有关的参数

  • -name filename:查找文件名称为 filename 的文件
  • -type TYPE:查找文件类型为 TYPE 的,如 一般正规文件(f)、设备文件 (b、c)、目录(d)、链接文件(l)等
  • -perm mode:查找文件权限刚好为 mode 的文件
  • -perm -mode:查找文件权限【必须全部囊括 mode 的权限】
  • -perm /mode:查找文件权限【包含任意 mode 的权限】

3 )额外可执行操作

  • -exec command:command 为其他命令,用来处理查找的结果
  • {}:代表find找到的内容(find 的输出)
  • -exec (额外操作的开始)    \;(额外操作的结束)

1 )观察磁盘分区的状态

lsblk (list block device):列出系统上的所有磁盘列表(存储设备)

  • -i,使用ASSCII 的字符输出,不使用复杂编码;
  • -p,列出该设备的完整文件名;

lsblk 的默认输出信息:

  • NAME:设备文件名 (显示省略 /dev 等前导目录);
  • MAJ:MIN:内核识别的设备所需的代码,主要和次要设备代码;
  • RM:是否为可卸载设备(removable device),如光盘、USB磁盘等;
  • SIZE:容量;
  • RO:是否为只读设备;
  • TYPE:输出类型,如磁盘(disk)、分区(parttion)、只读存储器(rom)等;
  • MOUNTPOINT:挂载点;

blkid :列出设备的 UUID 等参数

UUID:是全局唯一标识符(universally unique identifier),Linux 会将系统内所有设备都给予一个独一无二的标识符(UUID),作为挂载或是使用这个设备或文件系统;

cat  /proc/partitions  # 查看内核的分区记录

 

2 )磁盘分区:fdisk

通过 lsblk 先找到磁盘,在用 parted/dev/xxx print 来找出内部的分区表类型,之后通过 fdisk 来操作系统。

fdisk 设备名称

Command

  • n ,add a new partition   # 增加一个分区

p   primary            # 新建主分区

e   extended         # 新建扩展分区

  • d ,delete a partition  # 删除一个分区
  • q ,quit without saving changes  # 不保存分区就直接离开 fdisk
  • wq ,write table to disk and exit  # 保存分区后 离开 fdisk
  • l ,list known parttition types   # 列出已知的分区文件系统类型

常用linux 文件系统类型 :82  Linux swap / So  ;83  Linux  ;8e  Linux LVM  ;

  • t ,change a parttition's type code  # 改变分区的文件系统类型
  • o ,create a new empty DOS partition table  # 更改磁盘分区类型为 DOS

p ,列出目前这块磁盘的分区表信息

  • Number:分区编号
  • Start (sector):每个分区的开始扇区号码位置
  • End (sector):每个分区的结束扇区号码位置
  • Size:分区的容量
  • Code:分区内可能的文件系统类型
  • Name:分区系统的名称

例 磁盘分区的类型修改 (gpt ---> dos)

partprobe -s 更新 Linux 内核的分区表信息 !!!

3 )磁盘格式化 —— mkfs,make filesystem(创建文件系统)

XFS 文件系统 mkfs.xfs

ext4 文件系统 mkfs.ext4

4 )文件系统 挂载与卸载

  • 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
  • 单一目录不应该重复挂载多个文件系统;
  • 要作为挂载点的目录,理论上应该是空目录(目录不是空的,被挂载后,原内容会暂时隐藏!);

mount -a :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来

mount [ -l ]:显示目前挂载信息,包括 可增列 Label 名称

mount [ -t 文件系统 ] UUID=' ' 挂载点   ,指定欲挂载类型

mount -o :后接一些挂载时额外加上的参数,如 账号、密码、读取权限(ro只读,rw可读写)等

[ -o remount,xx ] :重新挂载,重新更新参数时

umount  将设备文件卸载

umount [-fn] 设备文件名/挂载点

  • -f :强制卸载
  • -l :立刻卸载文件系统,(比-f强)
  • -n :不更新 /etc/mtab 情况下卸载

注意:卸载前,必须先将工作目录移到挂载点(及其子目录)之外!!

例:文件系统正在被使用,无法卸载的解决方法

 

 设置启动挂载 /etc/fstab

  • df   查看    (/dev/sr0   挂载点)
  • vim /etc/fstab       (编辑 添加 )

/dev/sr0                           /mnt               iso9660     defaults            0   0

  • reboot

/etc/fstab 配置文件 设备名称编辑错误 (/dev/sro),重启挽救方法

  • reboot  ,重启后注释错误,再启动开机

  • vim /etc/fstab  编辑 修改错误
  • reboot

 内存交换分区 (swap)的创建

使用物理分区创建内存交换分区

  1. 分区:先使用 fdisk 在磁盘划分出一个分区作为内存交换分区,fdisk 默认会将分区 ID 设置为 Linux 的文件系统,需要设置 system ID。
  2. 格式化:【mkswap 设备文件名】。
  3. 使用:将 swap 设备启动,【swapon 设备文件名】。
  4. 观察:通过 free 与 swapon -s 观察内存使用量

 

使用文件创建内存交换文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值