linux之文件系统

文件系统

文件系统是操作系统用于明确磁盘或者分区上相关文件的方法和数据结构,通俗的说法就是在磁盘上组织文件的方法。

linux有很多不同的文件系统,例如ext2、ext3、ext4、zfs、iso9660、vfat、msdos等等。

文件系统虽然多种多样,但是大部分linux系统都具有类似的通用结构,包括超级块(superblock)、i节点(inode)、数据块(datablock)、目录块(directory block)等。

磁盘分区、创建文件系统、挂载

磁盘使用前必须对其分割,这种动作形象地被称为分区。

磁盘的分区可以分为两类,即主分区和扩展分区。受磁盘的分区表的大小限制,分区表占64字节,每个分区信息使用16字节,故一个磁盘最多创建4个分区。

在完成磁盘分区后,需要进行创建文件系统的操作,最后将分区挂载到系统中的某个挂载点才能使用。

创建文件系统

创建文件系统可以利用fdisk来创建。如果系统已经创建好了文件,则显示的是创建好的文件系统。

我的系统已经创建好了,利用fdisk -l 查看详细信息。

swz@swz-ubuntu18:~$ sudo fdisk -l
[sudo] swz 的密码:
Disk /dev/loop0:2.3 MiB,2433024 字节,4752 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop1:114 MiB,119525376 字节,233448 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop2:14.5 MiB,15196160 字节,29680 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop3:55.5 MiB,58232832 字节,113736 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop4:140.9 MiB,147722240 字节,288520 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop5:3.7 MiB,3887104 字节,7592 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop6:34.7 MiB,36323328 字节,70944 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop7:13 MiB,13619200 字节,26600 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/sda:60 GiB,64424509440 字节,125829120 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x13c29965设备       启动  起点      末尾      扇区 大小 Id 类型
/dev/sda1  *     2048 125827071 125825024  60G 83 LinuxDisk /dev/loop8:140.7 MiB,147517440 字节,288120 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop9:219 MiB,229638144 字节,448512 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop10:61.9 MiB,64933888 字节,126824 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop11:4 KiB,4096 字节,8 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop12:400.8 MiB,420265984 字节,820832 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop13:2.5 MiB,2658304 字节,5192 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop14:556 KiB,569344 字节,1112 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop15:2.6 MiB,2748416 字节,5368 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop16:91.7 MiB,96141312 字节,187776 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节Disk /dev/loop17:704 KiB,720896 字节,1408 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

假如系统加了一块设备,使用fdisk -l,发现其名为/dev/sdb。然后输入fdisk /dev/sdb,输入n,创建新的分区。再输入p,创建主分区。再输入起始柱面,再输入结束柱面。最后输入w,完成分区。

上述的设备在分区变成了新的名称,/dev/sdb1。利用创建文件系统的格式,利用 mkfs.ext3 /dev/sdb1创建新的文件系统。其中ext3是文件系统格式。

磁盘挂载

磁盘挂载可以使用mount来挂载设备,具体用法是mount DEVICE MOUNT_POINT。其中DEVICE是指具体的设备,MOUNT_POINT指的是挂载点,必须为一个目录。我们可以在/root目录下创建一个新的目录。

设置自动挂载

利用mount命令挂载的设备在重启计算机之后就会消失,必须配置/etc/fstab才能自动挂载。

echo “/dev/sdb1 /root/newDisk ext3 defaults 0 0” >>/etd/fstab

default是系统默认参数,第一个0是决定表示是否进行备份,0代表不备份。

第二个0代表系统启动时是否对该设备进行fsck,0代表不检查。

磁盘检验

当磁盘出现逻辑错误时,可以使用fsck来尝试修复。

该命令的使用:fsck -t TYPE /DEVICE/PATH

其中TYPE是指的文件系统的类型,/DEVICE/PATH指的设备的绝对路径。注意fsck检查磁盘必须是未挂载的设备。我们可以使用umount命令来解除挂载,,umount命令的参数可以是设备路径或者
是挂载点。例如:umount /DEVICE/PATH umount MOUNT_POINT

当系统根目录出现问题,可以在系统重启后,使用单用户登录之后,使用fsck来检查。

linux逻辑卷

磁盘一旦经过分区后,再想改变磁盘中这个分区的大小就很难了。

逻辑卷

逻辑卷就是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,也是Linux操作系统可以认识的设备。

  • 物理卷(Physical Volume,PV),也就是物理磁盘分区,比如说/dev/sdb1。

  • 卷组(Volume Group,VG),也就是PV的集合。

  • 逻辑卷(Logic Volume,LV),也就是PV中划出来的一块逻辑磁盘。

制作逻辑卷

创建物理卷

可以利用命令pvcreate、pvdisplay。

创建完分区之后,现修改分区的逻辑号。再利用pvcreate创建物理卷,利用pvscan或者pvdisplay显示分区的PV。

创建并查询卷组

利用命令vgcreate、vgdiplay命令来创建卷组,并查询卷巨。

vgcreate VG_NAME DEVICE1 … DEVICEn,其中VG_NAME是卷组名字,后面代表设备名字。

扩容卷组

利用vgextend命令可以扩展就卷组的容量大小容量。其使用命令为:vgextend VG_NAME DEVICE1 … DEVICEn,其中VG_NAME是待扩展的卷组。

创建逻辑卷

当卷组创建好了之后,可以直接创建逻辑卷。利用lvcreate、lvdisplay。

其命令使用如下:lvcreate -L SIZE -n LV_NAME VG_NAME

其中-L参数指的是逻辑卷的大小,后面的SIZE表示的具体的逻辑卷的大小的值,比如说300M;-n指的是逻辑卷的名字,最后的参数VG_NAME是指从什么卷组中分配空间。

创建文件系统并且挂载

在创建好了文件的逻辑卷之后,同理逻辑卷必须要创建文件系统,然后挂载才能被系统使用。其使用类似之前的分区以及文件系统划分以及最后的挂载。

硬链接和软链接

硬链接

硬链接是指实际的链接,是指通过节点来进行链接。linux文件系统中,文件都会有编号,多个文件名指向同一个节点是被允许的,这种链接是指硬连接。

硬链接有两个限制:

  • 不允许给目录创建硬链接
  • 只有在同一文件系统中的文件之间才能创建链接,即不同分区上的文件之间不能直接建立硬链接。

软链接

软链接又称符号链接,是一个包含了另外一个文件路径名的文件,可以指向任意文件或者目录,也可以跨不同的文件系统。软链接和windows下的快捷方式有点类似,删除软链接不会删除指向的源文件。

linux之文件系统相关推荐

  1. 文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解

    作者:北南南北 来自: LinuxSir.Org 摘要:本文对新增硬盘,切割硬盘,创建硬盘分区,为硬盘分区创建文件系统,以及加载文件系统的流程做总结性论述:主要是为初学者弄清楚这一操作过程:本文涉及f ...

  2. linux的文件系统及节点表

    linux的文件系统及节点表 一  linux的文件系统 1 我们都知道当我们安装linux时会首先给系统分区,然后我们会把分区格式化成EXT3格式的文件系统.那么在linux系统中还有没有其他的文件 ...

  3. 嵌入式linux文件系统格式,嵌入式Linux的文件系统分区及数据读写方法与流程

    本发明涉及Linux系统的数据存储管理领域,特别是涉及一种基于NANDFlash存储器和UBIFS文件系统的嵌入式Linux的文件系统分区及数据读写方法. 背景技术: ::目前Linux操作系统由于源 ...

  4. Linux虚拟文件系统解析

    概述 虚拟文件系统(Virtual Filesystem Switch,简称VFS)所有的数据结构都是在运行以后建立的,并在卸载时删除,在磁盘中并没有存储这些数据结构.虚拟文件系统只有和实际文件系统( ...

  5. linux虚拟文件系统浅析

    linux虚拟文件系统浅析 虚拟文件系统(VFS) 在我看来, "虚拟"二字主要有两层含义: 1, 在同一个目录结构中, 可以挂载着若干种不同的文件系统. VFS隐藏了它们的实现细 ...

  6. Linux及文件系统基本介绍

    Linux及文件系统基本介绍 1   互联网行业现状 在服务器端市场: 超级计算机 2014年11月的数据显示前500系统中的485个系统都在运行着 Linux 的发布系统,而仅仅只有一台运行着 Wi ...

  7. c# 找出目录下的所有子目录_第9期:Linux下文件系统满的处理

    文件系统满(file system full),几乎是每个程序员都会遇到的问题.它会导致各种神奇的现象,比如程序突然无法启动.日志突然不刷新了等.测试环境,我们通常找出大文件并删除即可.常规的步骤是: ...

  8. Linux根文件系统的制作

    1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(moun ...

  9. linux 文件系统 vfs,linux虚拟文件系统vfs

    <操作系统>课程设计报告课程设计题目:操作系统课程设计 设计时间:2016/1/10一. 课程设计目的与要求需要完成的内容:(1) 安装虚拟机:Vmware.Vmware palyer ( ...

  10. linux c 编程 pdf_C/C++编程笔记:Linux 日志文件系统未解之谜,你知道吗?

    文件系统要解决的一个关键问题是怎样防止掉电或系统崩溃造成数据损坏,在此类意外事件中,导致文件系统损坏的根本原因在于写文件不是原子操作,因为写文件涉及的不仅仅是用户数据,还涉及元数据(metadata) ...

最新文章

  1. Kotlin 学习笔记(八)—— Kotlin类与对象之接口
  2. vim括号操作(转)
  3. Android4.4 ContentResolver查询图片无效 及 图库删除 添加图片后,ContentResolver不更新的问题解决...
  4. 信息学奥赛C++语言:旅行
  5. Linux中的终端、控制台、tty、pty等概念
  6. Java 工具类 - MD5Util
  7. 数据算法之冒泡排序(bubbleSort)的Java实现
  8. java模拟dos窗口
  9. Cisco/华为 远程管理设备telnet的N种设置方法
  10. 使Docker Container支持运行SWT程序
  11. C++ 从入门到入土(English Version)Section 7 : Classes, Objects and Pointers
  12. 量子计算云平台“中国版”启动 量子信息革命正在加速到来
  13. 2ask matlab仿真,2ask调制解调系统仿真实验程序
  14. C# PDF操作之-PDF转WORD
  15. Spring Cloud 微服务速成
  16. 数据可视化之美-动态图绘制(以Python为工具)
  17. Pandoc下载安装教程
  18. 苹果2019年财报数据:年收入2600亿美元,市值1.3万亿美元
  19. 编辑为什么建议转投_SCI编辑建议转投容易录用吗
  20. mod在计算机导论中是什么意思,计算机导论ppt课件

热门文章

  1. memcpy函数是怎么样实现的
  2. MATLAB多核并行计算使用方法
  3. 微型计算机如何跳线,PCB设计之如何使用跳线
  4. 在 Ubuntu18.04 中为fctix小企鹅增加五笔输入法
  5. mysql修改数据列_MySQL数据库修改一列内容
  6. css文字换行时对不齐,css小技巧 - 换行对齐
  7. Vue学习记录三 --- vue的项目实战
  8. C语言检测数独是否合法,会数独的大佬请进。这是个判断九宫格数独是否正确的程序。...
  9. 海康Ehome协议接入EasyCVR视频融合平台播放视频失败的排查与解决
  10. 20款电脑剪贴板软件良心推荐汇总