磁盘与文件系统

磁盘与文件系统

整块磁盘的组成

  • 园形的碟片 记录数据
  • 机械手臂 与机械手臂的磁头 可擦写数据
  • 主轴马达 可以转动碟片,让机械手臂在碟片上写数据
  • 扇区 最小的物理存储单位 ,且有512B与4KB的两种格式。
  • 柱面 将扇区组成圆
  • 磁盘分区表主要有两种格式MBR分区表 和GPT分区表。
  • MBR分区表中,第一个分区表最重要,只要记录主引导记录及分区表,其中MBR占有446B,而分区表占有64B;
  • GPT分区表除了分区是数量增加后分区支持磁盘容量超过2TB

物理磁盘命名 :dev/sd [a-p] [1-128]

虚拟磁盘命名:vd [a-d] [1-128]

文件系统通常会将这两个部分分别存放到不同的区块,权限与属性放置在include当中,实际的数据放置在数据区块中。

  • 超级区块 记录文件系统的整体信息,包括inode与数据区块的总量、使用量、剩余量,以及文件系统的格式信息
  • inode 记录文件的属性,一个文件占用一个inode,同时记录文件数据的区块号码
  • 数据区块:实际记录文件的内容,若文件太大时,会记录多个区块。

索引式文件系统

碎片整理

​ 需要碎片整理的=原因是文件写入的区块太过于离散,此时文件读取的性能将变得很差,这时候可以通过碎片整理将同一个文件所属的区块集合在一起,这样数据的读取会比较容易。

LInux的ext2文件系统

文件系统一开始将inode与数据块规划好了,除非重新格式化(利用resize2fs)否则inode将不再变动。

Linux文件系统的运行

当需要使用数据的时候数据首先是将数据加载的内存中,当数据没有修改的时候,数据是会标注为clean 当数据被修改后数据会修改为dirty,此时数据并没有直接写入硬盘,而是存放在内存中,系统会不定时将数据写入到硬盘中,也可以通过手动写入:sync 这种方法叫做异步处理

若是正常关机 系统会自动调用sync保存数据

如果是非正常关机,再次启动会花费很长时间进行磁盘校验,甚至导致文件系统损毁。

挂载:将文件系统和目录树的结合操作叫挂载。

挂载点是目录,此目录为进入文件系统的入口。

XFS文件系统

ext4 对Linux支持最完整,-----格式化超慢

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

du 查看文件系统的磁盘使用情况

硬链接和软链接的创建

ln -s 表示软链接 不加参数为硬链接——》不能跨文件系统,不能链接目录

ln -f 目标文件存在则删除。

我们建立性目录时候 新目录的链接数为2,上层目录会+1

磁盘的分区、格式化、检验、挂载

查看磁盘状态

lsblk 列出系统上所有磁盘列表 list block devivce

[zhaobo@localhost ~]$ lsblk -h

用法:
 lsblk [选项] [<设备> ...]

列出块设备的信息。

选项:
 -a, --all            打印所有设备
 -b, --bytes          以字节为单位而非易读的格式来打印 SIZE
 -d, --nodeps         不打印从属设备(slave)或占位设备(holder)
 -D, --discard        打印时丢弃能力
 -z, --zoned          print zone model
 -e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
 -f, --fs             输出文件系统信息
 -i, --ascii          只使用 ascii 字符
 -I, --include <列表> 只显示有指定主设备号的设备
 -J, --json           使用 JSON 输出格式
 -l, --list           使用列表格式的输出
 -T, --tree           use tree format output
 -m, --perms          输出权限信息
 -n, --noheadings     不打印标题
 -o, --output <列表>  输出列
 -O, --output-all     输出所有列
 -p, --paths          打印完整设备路径
 -P, --pairs          使用 key=“value” 输出格式
 -r, --raw            使用原生输出格式
 -s, --inverse        反向依赖
 -S, --scsi           输出有关 SCSI 设备的信息
 -t, --topology       输出拓扑信息
 -x, --sort <列>      按<列>对输出排序

 -h, --help           display this help
 -V, --version        display version

[zhaobo@localhost ~]$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   20G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   19G  0 part 
  ├─cl-root 253:0    0   15G  0 lvm  /
  └─cl-swap 253:1    0    4G  0 lvm  [SWAP]
sr0          11:0    1  723M  0 rom  

name 设备名称

maj:min 系统识别的代码

rm 是否可以卸载

size 容量

ro是否为可读设备

type 是磁盘、分区还是只读存储器

mountpoint 挂载点


blkid列出设备的UUID等参数

uuid是全局唯一标识符,独一无二的标识符。

parted 列出磁盘分区表内性与区分信息

磁盘分区

MBR分区使用fdisk分区 GPT使用gdisk分区。

  • gdisk n 增加分区 d删除分区 p打印分区表 q不保存退出 w保存退出

gdisk只能root执行 使用设备名称不能加数字,分区针对的是磁盘设备,不是针对某个分区,所以当加上数字则会报错。

– 新增加一个分区

gdisk /dev/vda

p 输出信息

n 增加分区

设置分区标号 回车就行

设置扇区开始编号 上一个分区的结束编号+1 也可以直接回车

设置分区结束编号 +1G 系统会自动计算 如果直接回车则会使用所有的剩余容量。

设置文件系统 默认为linux filesystem

设置GUID 默认值即可 直接回车 可以通过l查看

0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
3000 ONIE boot             3001 ONIE config           3900 Plan 9              
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
4202 Windows Storage Spac  7501 IBM GPFS              7f00 ChromeOS kernel     
7f01 ChromeOS root         7f02 ChromeOS reserved     8200 Linux swap          
8300 Linux filesystem      8301 Linux reserved        8302 Linux /home         
8303 Linux x86 root (/)    8304 Linux x86-64 root (/  8305 Linux ARM64 root (/)
8306 Linux /srv            8307 Linux ARM32 root (/)  8400 Intel Rapid Start   
8e00 Linux LVM             a000 Android bootloader    a001 Android bootloader 2
a002 Android boot          a003 Android recovery      a004 Android misc        
a005 Android metadata      a006 Android system        a007 Android cache       
a008 Android data          a009 Android persistent    a00a Android factory     
a00b Android fastboot/ter  a00c Android OEM           a500 FreeBSD disklabel   
a501 FreeBSD boot          a502 FreeBSD swap          a503 FreeBSD UFS         
a504 FreeBSD ZFS           a505 FreeBSD Vinum/RAID    a580 Midnight BSD data   
a581 Midnight BSD boot     a582 Midnight BSD swap     a583 Midnight BSD UFS    
a584 Midnight BSD ZFS      a585 Midnight BSD Vinum    a600 OpenBSD disklabel   
a800 Apple UFS             a901 NetBSD swap           a902 NetBSD FFS          
a903 NetBSD LFS            a904 NetBSD concatenated   a905 NetBSD encrypted    
a906 NetBSD RAID           ab00 Recovery HD           af00 Apple HFS/HFS+      
af01 Apple RAID            af02 Apple RAID offline    af03 Apple label         

删除分区

p 查看分区

d 删除分区 后面增加要删除的分区标号即可

然后通过w 写入 但是系统并没有直接运行我们设置的环境 需要重新启动或者通过partprobe更新linux内核分区表信息

fgisk和上面一样

文件系统的挂载和卸载

  • 单一文件系统不应该被重复挂载再不同的挂载点
  • 单一的目录不应该重复挂载多个文件系统
  • 要作为挂载点的目录,理论上应该是空目录 如果挂载到非空目录则之前的数据将短暂消失

挂载xfs、ext4 等系统

blkid /dev/vada4 查看UUID

mkdir -p /data/xfs 非正规目录,所以手动建立它.

mount UUID=“UUID” /data/xfs

df /data/xfs 查看当前的文件系统的详细信息

挂载cd

[root@localhost ~]# mount /dev/sr0 ~/cd
mount: /root/cd: WARNING: device write-protected, mounted read-only.
[root@localhost ~]# ll
总用量 10
-rw-------. 1 root   root   1542 9月   5 17:23 anaconda-ks.cfg
dr-xr-xr-x. 5 zhaobo zhaobo 2048 6月   2 04:20 cd
-rw-r--r--. 1 root   root   1773 9月   5 17:27 initial-setup-ks.cfg
[root@localhost ~]# cd ./cd/
[root@localhost isolinux]# cd ../
[root@localhost cd]# df .
文件系统        1K-块   已用  可用 已用% 挂载点
/dev/sr0       739902 739902     0  100% /root/cd

挂载中文u盘

mount -o codepage=950 iocharser=utf8 uuid=“” /usb

重新挂载 出现问题时使用

mount -o remount,rw,auto /

卸载设备文件

umount -f 强制

umount -l 强制的强制

-n 不更新 /etc/mtab 卸载

启动挂载 /etc/fastab /etc/mtab

文件压缩

  • gzip -d解压
  • bzip2
  • xz

打包软件

压缩 tar -jcv -f 文件名 要被解压的文件名

查询 tar -jtv -f 文件名;

解压缩 tar -jxv -f 文件名 要被解压的文件名

·

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有命中注定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值