Linux磁盘分区、挂载、链接

2024-08-28 21:32

本文主要是介绍Linux磁盘分区、挂载、链接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言:

①、分区的方式

a)mbr分区:

最多支持四个主分区、系统只能安装在主分区、扩展分区要占一个主分区、MBR最大支持2TB,但拥有最好的兼容性

b)gtp分区:

支持无限多个主分区(说是这么说,但是操作系统可能会限制,比如Windows下最多128个分区)、最大支持18EB的大容量、Windows7 64以后支持gtp

1)Linux分区
  ①、原理介绍
  Linux来说无论有几个分区,分给哪一个目录使用(挂载),他归根结底就只有一个根目录,一个独立且卫衣的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分的。

Linux采用了一种叫 “载入” 的处理方法,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。

简单来说,一个分区代表了一块具体的存储空间,Linux通过挂载的技术将这块空间挂载了一个具体的目录下面。

原理图:
在这里插入图片描述

②、硬盘说明

Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘

对于IDE硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘。“x”为盘号(x为a时为基本盘,为b时值辅助主盘,为d是辅助从属盘),“”代表分区,前四个分区用数字1到4表示,他们是主分区或扩展分区,从5开始就是逻辑分区。比如:hda3 表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

对于SCSI硬盘则标识符为“sdx~”,SCSI硬盘使用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

2)使用lsblk(老师不离开)指令查看当前系统的分区情况
  
在这里插入图片描述
在这里插入图片描述

3)挂载的经典案例【非常重要】
  需求:当目前的硬盘不够用时,就要尝试给Linux新增硬盘了,并且挂载到某一个具体的目录下面/home/newdisk

原理:新增一块硬盘sdb1,并挂载到/home/newdisk,此时对/home/newdisk的操作其实就是在操作sdb1这块硬盘。

在这里插入图片描述

①、先增加一块硬盘

a)虚拟机添加硬盘

在这里插入图片描述

当添加硬盘后使用 lsblk -f 发现并没有叫sdb的硬盘,需要重启才能看到。

在这里插入图片描述
在这里插入图片描述

此时的硬盘并没有分区,所以显示sdb 后面没有数字

b)分区

分区命令 fdisk /dev/sdb

开始对/sdb分区

*m  显示命令列表

*p  显示磁盘分区  与fdisk -l效果相同

*n  新增分区

*d  删除分区

*w  写入并退出

书名分区命令后,输入n新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q。

在这里插入图片描述

在这里插入图片描述

此时就分区成功了

c)格式化

mkfs -t ext4 /dev/sdb1    ext4是分区命令

d)挂载:将一个分区与一个目录联系起来

mount 设备名 挂载目录

例如:mount /dev/sdb1 /home/newdisk
在这里插入图片描述

附:卸载:umount 设备名称 或者 挂载目录

例如:umount /dev/sdb1 或者 umount /home/newdisk

f) 设置自动挂载

通过修改/etc/fstab实现自动挂载

添加完成后,执行mount -a 即可生效

在这里插入图片描述

至此。新增硬盘的挂载完成

4)磁盘情况查询
  ①、查询磁盘整体使用情况

df -h指令

在这里插入图片描述

②、查询指定目录的擦盘占用情况

du -【选项】 目录

常用选项:-s  指定目录占用大小汇总

-h  带计量单位

-a  含文件

–max-depth=1  子目录深度

-c  列出明细的同时,增加汇总值
在这里插入图片描述

5)磁盘情况【工作实用】

①、统计/root文件夹下文件的个数
在这里插入图片描述

②、统计/home文件夹下目录的个数

ls -l /home | grep “^d” | wc -l

③、统计/home文件夹下文件的个数,包括子文件夹下的

ls -lR /home | grep “^-” | wc -l

④、统计文件夹下目录的个数,包括子文件夹里的

ls -lR /home | grep “^d” | wc -l

⑤、以树状显示目录结构

tree

其他:
tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储暂存的文件。

优势 :
1.动态文件系统的大小。
2.tmpfs 的另一个主要的好处是它闪电般的速度。

缺点:
因为典型的 tmpfs 文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的。同时它也有一个缺点 tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

Linux软连接和硬链接的区别
一、Linux链接概念
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

1、【硬连接】
  硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

2、【软连接】
  另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

二、通过实验加深理解
[oracle@Linux]$ touch f1 #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2 #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3 #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r–r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r–r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo “I am f1 file” >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

三、总结归纳
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
综上 硬链接类似于文件复制 软连接类似于为文件创建快捷方式

查看挂载情况:
在这里插入图片描述

这篇关于Linux磁盘分区、挂载、链接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115934

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

Linux CPU飙升排查五步法解读

《LinuxCPU飙升排查五步法解读》:本文主要介绍LinuxCPU飙升排查五步法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录排查思路-五步法1. top命令定位应用进程pid2.php top-Hp[pid]定位应用进程对应的线程tid3. printf"%

Linux下安装Anaconda3全过程

《Linux下安装Anaconda3全过程》:本文主要介绍Linux下安装Anaconda3全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录简介环境下载安装一、找到下载好的文件名为Anaconda3-2018.12-linux-x86_64的安装包二、或者通