LinuxBasicsForHackers笔记 -- 文件系统和存储设备管理

本文主要是介绍LinuxBasicsForHackers笔记 -- 文件系统和存储设备管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

设备目录/dev

Linux 有一个特殊的目录,其中包含代表每个连接设备的文件:相应命名的 /dev 目录。

/dev中有很多设备列表。 特别令人感兴趣的是设备 sda1、sda2、sda3、sdb 和 sdb1,它们通常是硬盘驱动器及其分区以及 USB 闪存驱动器及其分区。

Linux 如何表示存储设备

Linux 对随后安装在文件系统上的驱动器使用逻辑标签。 这些逻辑标签将根据驱动器的安装位置而变化,这意味着同一硬盘驱动器在不同时间可能有不同的标签,具体取决于安装的位置和时间。

当系统有多个硬盘驱动器时,Linux 只是通过按字母顺序递增最后一个字母来连续命名它们,因此第一个驱动器是 sda,第二个驱动器是 sdb,第三个驱动器是 sdc,如下表。 sd 后面的序列字母通常称为主编号。

在这里插入图片描述

驱动器分区

某些驱动器可以分为多个分区,以便管理和分离信息。Linux 用驱动器名称后面的次要编号来标记每个分区。 这样,第一个 SATA 驱动器上的第一个分区将是 sda1。 第二个分区将是 sda2,第三个分区是 sda3,依此类推,如下表所示。

在这里插入图片描述
有时,您可能想要查看 Linux 系统上的分区,以了解您拥有哪些分区以及每个分区有多少可用容量。 您可以使用 fdisk 实用程序来执行此操作。 将 -l 开关与 fdisk 一起使用会列出所有驱动器的所有分区:fdisk -l

Linux 使用多种不同类型的文件系统,但最常见的是 ext2、ext3 和 ext4。 这些都是 ext(或扩展)文件系统的迭代,其中 ext4 是最新的。

字符设备和块设备

关于 /dev 目录中设备文件的命名还需要注意的是,第一个位置包含 cb。 它看起来像这样:

在这里插入图片描述
这些字母代表设备传入和传出数据的两种方式。 c 代表字符,这样的设备被称为字符设备。 通过逐个字符发送和接收数据与系统交互的外部设备,例如鼠标或键盘,都是字符设备。

b 代表第二种类型:块设备。 它们以数据块(一次多个字节)进行通信,并包括硬盘驱动器和 DVD 驱动器等设备。 这些设备需要更高速度的数据吞吐量,以块的形式发送和接收数据(一次多个字符或字节)。 一旦您知道设备是字符设备还是块设备,您就可以轻松获得有关它的更多信息。

使用 lsblk 列出块设备和信息

Linux 命令 lsblk 是 list block 的缩写,列出 /dev 中列出的每个块设备的一些基本信息。结果与 fdisk -l 的输出类似,但它也会以树的形式显示具有多个分区的设备,将每个设备及其分区显示为分支,并且不需要 root 权限即可运行。

我们还可以看到有关驱动器安装点的信息 - 这是驱动器连接到文件系统的位置。 请注意,硬盘驱动器 sda1 安装在 / 处,闪存驱动器安装在 /media 处。

挂载和卸载

即使设备在物理上连接到系统,它也不一定在逻辑上连接到操作系统并且可供操作系统使用。

目录树中连接设备的点称为挂载点。 Linux 中的两个主要挂载点是 /mnt/media。 按照惯例,外部 USB 设备和闪存驱动器等设备可以手动挂载到 /mnt,但自动挂载时,将使用 /media 目录(尽管技术上可以使用任何目录)。

自行挂载存储设备

要在文件系统上挂载驱动器,请使用 mount 命令。设备的挂载点应该是一个空目录; 如果将设备挂载到包含子目录和文件的目录上,则挂载的设备将覆盖该目录的内容,使它们不可见且不可用。要将新硬盘 sdb1 挂载在 /mnt 目录中,输入以下命令:mount /dev/sdb1 /mnt

系统在启动时挂载的文件系统保存在 /etc/fstab(文件系统表的缩写)的文件中,系统在每次启动时都会读取该文件。

使用 umount 卸载

与 mount 命令类似,您可以通过输入 umount 命令,然后输入 /dev 目录中设备的文件条目(例如 /dev/sdb)来卸载第二个硬盘驱动器。 请注意,该命令不是拼写为 unmount,而是拼写为 umount(没有 n)。umount /dev/sdb1

您无法卸载繁忙的设备,因此如果系统正在读取或写入该设备,您只会收到错误。

监控文件系统

获取已挂载磁盘的信息

命令 df(disk free)将为我们提供有关任何硬盘或已安装设备(例如 CD、DVD 和闪存驱动器)的基本信息,包括正在使用的空间和可用空间。如果没有任何选项,df 默认为所有已安装的驱动器。 如果要检查不同的驱动器,只需在 df 命令后加上要检查的驱动器表示(例如 df sdb)即可。df

检查错误

fsck 命令(filesystem check的缩写)检查文件系统是否有错误并修复损坏(如果可能),或者将坏区域放入坏块表中以将其标记为坏。

运行fsck命令需要指定要检查的设备文件。 请务必注意,在运行文件系统检查之前必须卸载驱动器。

我可以添加 -p 选项以使 fsck 自动修复设备的任何问题,如下所示:fsck -p /dev/sdb1

这篇关于LinuxBasicsForHackers笔记 -- 文件系统和存储设备管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Linux中的缓冲区和文件系统详解

《Linux中的缓冲区和文件系统详解》:本文主要介绍Linux中的缓冲区和文件系统方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、FILE结构1、fd2、缓冲区二、文件系统1、固态硬盘2、逻辑地址LBA(一)数据块 Data blocks(二)inode表

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构