Linux文件系统

    xiaoxiao2022-07-12  141

    文件的分类

    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)