Linux文件系统

文件的分类

1⃣️ - 普通文件:C语言代码、Shell脚本、二进制的可执行文件
2⃣️ d 目录文件:目录,存储文件的唯一地方
3⃣️ l 链接文件:指向同一个文件或目录的文件,软链接Link file
4⃣️ b 块设备文件:与系统外设相关的,块设备文件,支持以块为单位进行随机访问,/dev下,一块是2k
5⃣️ c 字符设备文件:支持以字符为单位进行访问。/dev下
6⃣️ s 套接字(socket)文件:该文件类型与网络通信有关

文件系统

层级结构,目录和文件的一个组合层级结构,起点是根/,组成一个倒置的树状结构。

文件系统是文件存在的物理空间。

Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。
一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。

文件系统(filesystem)类型

ext2:早期Linux中常用的文件系统
ext3: ext2的升级版,带日志功能
ext4:是 Ext3 文件系统的升级版。Ext4 在性能、伸缩性和可靠性方面进行了大量改进。Ext4 的变化可以说是翻天覆地的,比如向下兼容 Ext3、最大 1EB 文件系统和 16TB 文件、无限数量子目录、Extents 连续数据块 概念、多块分配、延迟分配、持久预分配、快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等。它是 CentOS 6.3 的默认文件系统
XFS:由SGI开发的先进的日志文件系统,支持超大容量文件
NFS:NFS 是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源
iso9660:光盘的标准文件系统。Linux 要想使用光盘,必须支持 iso9660 文件系统
swap:swap 是 Linux 中用于交换分区的文件系统(类似于 Windows 中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的 2 倍,但是不要超过 2GB。它是 Linux 的必需分区

一个Linux系统支持不同类型的分区

文件系统命名规则

1⃣️严格区分大小写
2⃣️目录也是文件,在同一个路径下,两个文件不能同名
3⃣️支持使用除“/”以外的所有字符
4⃣️最长不能超过255个字符
5⃣️目录最好不要是命令的关键字
6⃣️最好不是汉语拼音、或者首字母

分区的功能

1⃣️防止数据丢失:如果系统只有一个分区,那么这个分区损坏,用户将会丢失所有的数据。
2⃣️增加磁盘空间使用效率:可以用不同的区块大小来格式化分区,如果有很多1k的文件,而硬盘分区区块大小为4k,那么每存储一个文件将会浪费3k空间。这时我们需要取这些文件大小的平均值进行区块大小的划分。
3⃣️数据激增到极限不会引起系统挂起:将用户数据和系统数据分开,可以避免用户数据填满整个硬盘,引起的系统挂起。

文件系统特性

当划分磁盘分区并格式化的时候,整个分区会被分为两个部分,即inode区和data block区
这个inode即是(目录、文件)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个文件的inode。Inode里面存储了文件的很多重要参数,其中唯一标识称为 Inumber,其他信息还有创建时间(ctime)、修改时间(mtime)、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息

文件在一个文件系统中的唯一标识 实际数据放置在数据区

分区工作原理及操作流程

原理:物理磁盘被格式化为PV,空间被划分为一个个的PE
不同的PV加入到同一个VG中,不同PV的PE进入到了VG的PE池内
LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
LV现在就直接可以格式化后挂载使用了
LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据

分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。

步骤
1.查看磁盘信息
fdisk -l
2.插入新磁盘
3.再次查看磁盘信息,确认需要分区的新磁盘
4.进行分区
5.格式化磁盘分区
6.使用格式化后的磁盘 mount 挂载,mount filesystem mount_point
mount point /dev/sdb2 /home/data

查看磁盘信息

关于fdisk -l 一些数值的说明

硬盘概括信息:
Disk /dev/hda: 80.0 GB, 80026361856bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

这个硬盘是80G的,有255个磁面;63代表一个磁面的扇区;9729个磁柱;
每个cylinder(磁柱)的容量是 8225280 bytes=8.225280 M(约为);
分区序列号引导开始终止容量分区类型ID 分区类型

硬盘分区详细信息:
device boot Start End Blocks id System
/dev/sda1 * 1 64 512000 83 Linux
boot里面*表示该分区可引导;Start和End表示起始柱面和结束柱面;Blocks表示占多少块
ID表示硬盘分区所对应的ID号,也就是分区类型。

插入新磁盘

power off之后在当前系统添加虚拟硬盘

再次查看磁盘信息,确认需要分区的新磁盘
登录之后,fdisk -l

fdisk分区

fdisk 命令参数介绍

  • p 打印分区表
  • n 新建一个新分区
  • d 删除一个分区
  • q 退出不保存
  • w 把分区写进分区表,保存并退出

步骤:
1.查看当前磁盘信息 fdisk -l
2.关闭服务器poweroff
3.插入新的盘片
4.启动服务器
5.再次查看磁盘信息,新磁盘为 /dev/sdb
fdisk /dev/sdb
p——>print
n——>create new name
p——>is primary partition
3——>number of partition
start——>开始位置
end——>位置 +20M +20G
p——>print
w——>save & quit

格式化磁盘分区

mkfs命令
适用:用来在特定的分区建立Linux文件系统
格式:
mkfs [-V][-t文件系统][存储设备]
device预备检查的硬盘分区,比如:/dev/sda1

  • -V 显示详细信息
  • -t 指定文件系统类型,默认为ext2,其他还有ext3,ext4等
  • -c 在建立文件系统前,检查该分区是否有坏道

创建文件步骤如下:

$mkdir /mnt/sd-80a   
$chmod 777 /mnt/sd-80a 
$mount /dev/sd-80a /mnt/sd-80a                                                                 
$mkfs -t ext3 /dev/sd-80a       
$mkfs -t ext3 /dev/sd-80a  

磁盘格式化:

mkfs.ext3 /dev/hdd1
mkfs -t ext3 /dev/hdd1

使用格式化后的磁盘 mount 挂载

mount /dev/sdd1 /u01

vi /etc/fstab

把挂载信息写在最后一行,不然再次打开系统就会消失,不会永久保存

blkid :
blkid 显示关于可用块设备的信息。
可以识别一个块设备内容的类型(如文件系统、交换区)以及从内容的元数据(如卷标或UUID字段)中获取属性。
它主要有两类作用:用指定的键值对搜索一个设备,或是显示一个或多个设备的键值对。

LVM卷管理分区方式(Logic Volume Manager)

LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。

PV (Physical Volume)物理卷
VG(Volume Group)卷组
LV(Logical Volume)逻辑卷
PE(Phycial Extend)物理拓展

VG的扩展需要添加物理盘,逻辑卷可以动态添加

分区步骤

查看磁盘信息

df -h 
/dev/mapper/vg_db01-lv_root  31G.      1.9G         27G          7%                /

从左到右分别为:文件系统 容量 已用 可用 已用百分比 挂载点

创建 PV (Physical Volume)物理卷

pvcreate  /dev/sdb
  • 查看:pvdisplay
  • 创建:pvcreate [device path]
  • 删除:pvremove [device path]
  • 扩展:创建pv

创建vgs(Volume Group)卷组

vgcreate vg_ora /dev/sdb
  • 查看:vgdisplay
  • 创建:vgcreate [name] [pv_path]
  • 删除:vgremove [vg_name]
  • 扩展:vgextend [vg_name] [new_pv]

创建lvs (Logical Volume)逻辑卷

lvcreate -n lv_ora -L 5G vg_ora
  • 查看: lvdisplay
  • 创建:lvcreate -n [name] -L [size] [vg_name]
  • 删除:lvremove [lv_path]
  • 扩展:lvextend -L [+size] [lv_path] 扩展之后需要更新尺寸:resize2fs /dev/vg_data/lv_ora(在resize之前一定要格式化)

磁盘格式化

mkfs.ext3 /dev/hdd1
mkfs -t ext3 /dev/hdd1

挂载

mount [-t vfstype][-o options] device dir
  • -o options 主要用来描述设备或档案的挂接方式
  • -t vsftype:指定要挂载的设备上的文件系统类型
  • -r : readonly 只读挂载
  • -w : read and write 读写挂载

挂载磁盘

mount /dev/hdd1 /u01

vi /etc/fstab (永久挂载需要在这里面把挂载信息填进去)

挂载光盘
首先插入盘片

mount /dev/cdrom /mnt/cdrom/

mount /dev/sr0 /mnt/cdrom/

卸载挂载

umount [mount_point]
例: umount /mnt/cdrom
注:正在使用中的设备无法被卸载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值