当前位置: 首页 > news >正文

【Ubuntu与Linux操作系统:五、文件与目录管理】

第5章 磁盘存储管理


5.1 Linux磁盘存储概述

磁盘存储是Linux系统存储数据的重要组件,它通过分区和文件系统组织和管理数据。Linux支持多种文件系统,如ext4xfsbtrfs,并以块的形式管理存储设备。

1. 分区与文件系统

  • 分区:磁盘被分割为多个逻辑块,每块可以单独管理和格式化。分区类型包括主分区、扩展分区和逻辑分区。
  • 文件系统:文件系统定义了数据在磁盘上的组织方式。常见的文件系统有ext4(默认)、FAT32(跨平台)等。

2. 磁盘设备命名规则

  • 磁盘设备在Linux系统中以/dev目录表示,例如/dev/sda代表第一块SATA硬盘。
  • 分区以数字标识,例如/dev/sda1表示第一个分区。

3. Linux中的存储抽象

  • 挂载点:文件系统需要挂载到目录才能使用,例如挂载根文件系统到/
  • 虚拟文件系统(VFS):提供文件系统的统一接口,使不同文件系统在用户看来一致。

磁盘存储管理是系统维护的核心,影响到数据存储的安全性和效率。


5.2 使用命令行工具管理磁盘分区和文件系统

在Linux中,命令行工具是磁盘管理的主要方式。常用工具包括fdiskpartedmkfs

1. 使用fdisk管理分区

  • 查看磁盘信息:

    sudo fdisk -l
    
  • 创建新分区:

    sudo fdisk /dev/sda
    

    按照提示输入命令(如n创建分区,w保存修改)。

2. 使用parted管理分区

  • 启动parted工具:

    sudo parted /dev/sda
    
  • 创建分区:

    mklabel gpt
    mkpart primary ext4 0% 50%
    

3. 创建文件系统

  • 格式化分区:

    sudo mkfs.ext4 /dev/sda1
    

4. 检查和修复文件系统

  • 检查文件系统:

    sudo fsck /dev/sda1
    
  • 修复文件系统:
    添加-y选项自动修复错误。

命令行工具提供灵活的磁盘分区和文件系统管理方式,适合服务器环境和高级用户。


5.3 使用图形界面工具管理磁盘分区和文件系统

在桌面版Linux系统中,图形化工具使磁盘管理更直观。Ubuntu提供的磁盘管理工具是Gnome Disks,也称“磁盘”应用。

1. 打开磁盘工具

  • 从“活动”搜索栏搜索“磁盘”,打开图形化磁盘管理器。

2. 查看磁盘信息

  • 磁盘工具显示所有磁盘及其分区信息,包括大小、类型和挂载点。

3. 管理分区

  • 创建分区:选择目标磁盘,点击“+”按钮,指定分区大小和类型(如ext4)。
  • 格式化分区:选择分区后点击“格式化”,设置文件系统类型。
  • 删除分区:点击“-”按钮移除分区。

4. 挂载和卸载分区

  • 挂载分区:选择分区并点击“挂载”。
  • 卸载分区:选择分区并点击“卸载”。

图形化工具适合初学者,但在高级场景中可能需要配合命令行工具。


5.4 挂载和使用外部存储设备

外部存储设备(如U盘、移动硬盘)是数据交换的重要工具。在Linux中,这些设备需要挂载后才能使用。

1. 自动挂载

  • 插入设备后,Ubuntu会自动识别并挂载到/media/用户名/路径下。文件管理器会显示设备图标,可直接访问。

2. 手动挂载

  • 查看设备:

    lsblk
    
  • 创建挂载点:

    sudo mkdir /mnt/mydisk
    
  • 挂载设备:

    sudo mount /dev/sdb1 /mnt/mydisk
    
  • 卸载设备:

    sudo umount /mnt/mydisk
    

3. 配置永久挂载

  • 编辑/etc/fstab文件,将设备信息写入:

    /dev/sdb1 /mnt/mydisk ext4 defaults 0 0
    

正确挂载外部设备能保证数据的读写安全,并避免硬件损坏。


5.5 文件系统的备份

数据备份是保障数据安全的关键操作。在Linux中,可以通过多种工具和策略完成备份。

1. 基本备份工具

  • cp命令:适合小规模备份:

    cp -r 源目录 目标目录
    
  • rsync工具:高效的增量备份工具:

    rsync -av --progress 源目录 目标目录
    

    使用--delete选项可以同步删除目标中多余的文件。

2. 压缩备份

  • 使用tar压缩目录:

    tar -czvf 备份文件.tar.gz 源目录
    

3. 备份策略

  • 完全备份:定期备份所有数据,安全但占用存储空间。
  • 增量备份:仅备份自上次备份以来修改的文件,节省空间但恢复时需逐步应用备份。

制定合理的备份计划,定期测试备份数据,是避免数据丢失的重要保障。

相关文章:

【Ubuntu与Linux操作系统:五、文件与目录管理】

第5章 磁盘存储管理 5.1 Linux磁盘存储概述 磁盘存储是Linux系统存储数据的重要组件,它通过分区和文件系统组织和管理数据。Linux支持多种文件系统,如ext4、xfs和btrfs,并以块的形式管理存储设备。 1. 分区与文件系统: 分区&am…...

32_Redis分片集群原理

1.Redis集群分片 1.1 Redis集群分片介绍 Redis集群没有使用一致性hash,而是引入了哈希槽的概念。Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。 用于将密钥映射到散列插槽的基本算法如下: HASH_SLOT = CRC16(key) mod 16384 集群的每…...

微信小程序mp3音频播放组件,仅需传入url即可

// index.js // packageChat/components/audio-player/index.js Component({/*** 组件的属性列表*/properties: {/*** MP3 文件的 URL*/src: {type: String,value: ,observer(newVal, oldVal) {if (newVal ! oldVal && newVal) {// 如果 InnerAudioContext 已存在&…...

Sql 创建用户

Sql server 创建用户 Sql server 创建用户SQL MI 创建用户修改其他用户密码 Sql server 创建用户 在对应的数据库执行,该用户得到该库的所有权限 test.database.chinacloudapi.cn DB–01 DB–02 创建服务器登录用户 CREATE LOGIN test WITH PASSWORD zDgXI7rsafkak…...

数据结构:LinkedList与链表—面试题(三)

目录 1、移除链表元素 2、反转链表 3、链表的中间结点 4、返回倒数第k个结点 5、合并两个有序链表 1、移除链表元素 习题链接https://leetcode.cn/problems/remove-linked-list-elements/description/ 描述:给你一个链表的头节点 head 和一个整数 val &#xff…...

【开发日记】Docker修改国内镜像源

1、问题: docker pull镜像时提示以下内容: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)2、解决 ①…...

Elasticsarch:使用全文搜索在 ES|QL 中进行过滤 - 8.17

8.17 在 ES|QL 中引入了 match 和 qstr 函数,可用于执行全文过滤。本文介绍了它们的作用、使用方法、与现有文本过滤方法的区别、当前的限制以及未来的改进。 ES|QL 现在包含全文函数,可用于使用文本查询过滤数据。我们将回顾可用的文本过滤方法&#xf…...

第432场周赛:跳过交替单元格的之字形遍历、机器人可以获得的最大金币数、图的最大边权的最小值、统计 K 次操作以内得到非递减子数组的数目

Q1、跳过交替单元格的之字形遍历 1、题目描述 给你一个 m x n 的二维数组 grid,数组由 正整数 组成。 你的任务是以 之字形 遍历 grid,同时跳过每个 交替 的单元格。 之字形遍历的定义如下: 从左上角的单元格 (0, 0) 开始。在当前行中向…...

RK3399开发板Linux实时性改造

本次测试基于NanoPC-T4开发板(国产化处理器RK3399),4.19.111内核Xenomai实时性改造测试。 Xenomai下载网站:https://xenomai.org/downloads/ NanoPC-T4网站:https://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/z…...

青少年编程与数学 02-006 前端开发框架VUE 22课题、状态管理

青少年编程与数学 02-006 前端开发框架VUE 22课题、状态管理 一、状态管理二、Vuex1. 安装Vuex2. 创建Vuex Store3. 在Vue应用中使用Store4. 在组件中使用状态5. 模块化Store 三、Vuex应用示例1. 创建项目2. 安装Vuex3. 设置Vuex Store4. 在主项目中使用Store5. 创建组件6. 更新…...

Linux 内核中的 netif_start_queue 函数:启动网络接口发送队列的关键

在 Linux 内核的网络子系统中,netif_start_queue 函数扮演着至关重要的角色。这个函数的主要功能是启动(或启用)网络接口的发送队列,标志着网络接口已经准备好开始发送数据包。本文将深入探讨 netif_start_queue 函数的用途、工作原理以及在实际网络驱动代码中的应用。 函…...

数据结构之顺序结构二叉树(超详解)

文章目录 1 树1.1 树的概念与结构1.2 相关术语1.3 树的表示与运用场景1.3.1 运用场景 2. 二叉树2.1 概念与结构2.1.1 满二叉树2.1.2 完全二叉树 3. 顺序结构二叉树3.1 堆的引入3.1.1 概念与结构 3.2 功能实现3.2.1 堆的结构3.2.2 初始化、销毁 3.3 堆的插入数据3.3.1 向上调整算…...

acwing_5722_十滴水

acwing_5722_十滴水 下面这篇大佬的题解属实是把指针用明白了&#xff0c;可以好好理解一下&#xff1a; 原题解连接&#xff1a;AcWing 5722. 一个简单模拟实现 - AcWing map/unordered_map的用法:见收藏夹 #include<iostream> #include<unordered_map> #incl…...

acwing-3194 最大的矩形

acwing-3194 最大的矩形 这个题程序设计课上有讲过&#xff0c; 平民算法&#xff0c;时间复杂度在 O ( n 2 ) O(n^2) O(n2) // // Created by HUAWEI on 2024/10/28. // #include<iostream>using namespace std;const int Max_size 1e4 20;int N; int h[Max_size];…...

UnityDemo-TheBrave-制作笔记

这是我跟着b站up主MStudio的视频学习制作的&#xff0c;大体上没有去做一些更新的东西&#xff0c;这里只是一个总的总结。在文章的最后&#xff0c;我会放上可以游玩该游戏的链接和exe可执行文件&#xff0c;不过没有对游戏内容进行什么加工&#xff0c;只有基本的功能实现罢了…...

玩转 JMeter:Random Order Controller让测试“乱”出花样

嘿&#xff0c;各位性能测试的小伙伴们&#xff01;今天咱要来唠唠 JMeter 里超级有趣又超实用的 Random Order Controller&#xff08;随机顺序控制器&#xff09;&#xff0c;它就像是性能测试这场大戏里的“魔术棒”&#xff0c;轻轻一挥&#xff0c;就能让测试场景变得千变…...

VTK知识学习(33)-交互问题2

1、前言 主要是针对前面有过实现不了交互的情况进行说明&#xff0c;经过一些尝试和分析调用API&#xff0c;总算实现RenderWindowControl函数回调正常串接&#xff0c;当然这个移动处理事件的效果目前也没有确认。 2、使用 vtkImageReslice reslice vtkImageReslice.New();p…...

Centos9-SSH免密登录配置-修改22端口-关闭密码登录-提高安全性

Centos9-SSH免密登录配置-修改22端口-关闭密码登录 生成秘钥对将公钥信息存进authorized_keys测试登录查询访问记录、比对指纹更换22访问端口关闭账号密码登录生成秘钥对 生成密钥对,指定 备注 和 文件目录命令执行后,默认两次回车,不设置秘钥使用密码ssh-keygen -t rsa -b …...

SqlServer: An expression services limit has been reached异常处理

在工作中遇到一个问题&#xff0c;因为项目很老&#xff0c;代码很不规范&#xff0c;出现一种场景&#xff1a; 查询所有客户(5w条以上)&#xff0c;然后根据客户Id&#xff0c;再去其他表查询&#xff0c;代码中是直接将customerId拼接到sql中去查询&#xff0c;形成的sql如…...

CentOS下安装Docker

Docker 必须要在Linux环境下才能运行&#xff0c;windows下运行也是安装虚拟机后才能下载安装运行&#xff0c;菜鸟教程 下载安装 linux 依次执行下边步骤 更新 yum yum update 卸载旧的Docker yum remove docker docker-client docker-client-latest docker-common doc…...

避坑指南:在YOLOv5-7.0中融合BiFPN时,如何平衡P2检测头带来的精度与速度损耗?

YOLOv5-7.0中BiFPN与P2检测头的精度与速度平衡实战 当你在无人机航拍画面中寻找几毫米大小的电子元件时&#xff0c;或者在显微镜图像中定位细胞核位置时&#xff0c;传统目标检测模型的性能往往会大打折扣。这正是微小目标检测技术大显身手的场景——而YOLOv5作为工业界最受欢…...

NovelAI:从文本生成到内容创作的AIGC实践

1. NovelAI&#xff1a;你的AI创作助手 第一次接触NovelAI时&#xff0c;我正被一篇商业方案折磨得焦头烂额。凌晨三点的咖啡杯旁&#xff0c;这个基于GPT模型的AI工具在15分钟内就帮我完成了初稿框架&#xff0c;那一刻我就知道&#xff0c;内容创作的方式正在被重新定义。Nov…...

Cesium快速入门到精通系列教程八:Primitive和Entity的相似点与不同点

在 Cesium1.95 中,Primitive和Entity是两种创建和管理三维对象的核心方式,它们在功能上有相似之处,但设计目标和使用场景差异明显。以下是详细对比: 一、相似点​​ 1、基础渲染目标​​ 两者均用于在 3D 场景中绘制图形(点、线、面、模型等)。 最终都会通过底层 WebGL…...

Stats与其他Go统计库对比分析:为什么选择这个无依赖解决方案

Stats与其他Go统计库对比分析&#xff1a;为什么选择这个无依赖解决方案 【免费下载链接】stats A well tested and comprehensive Golang statistics library package with no dependencies. 项目地址: https://gitcode.com/gh_mirrors/sta/stats 在Go语言生态系统中&a…...

Pixel Aurora Engine基础教程:Streamlit状态管理与多会话隔离机制

Pixel Aurora Engine基础教程&#xff1a;Streamlit状态管理与多会话隔离机制 1. 认识Pixel Aurora Engine Pixel Aurora是一款基于AI扩散模型的高端绘图工作站&#xff0c;采用独特的复古像素游戏风格界面。这款"虚拟游戏机"能将文字描述转化为极具视觉冲击力的像…...

SDMatte开源大模型部署:本地化AI抠图替代PS,支持透明物体精细提取

SDMatte开源大模型部署&#xff1a;本地化AI抠图替代PS&#xff0c;支持透明物体精细提取 1. 产品概述 SDMatte是一款专注于高质量图像抠图的AI模型&#xff0c;特别擅长处理传统抠图工具难以应对的复杂场景。与Photoshop等传统工具相比&#xff0c;SDMatte通过深度学习技术实…...

Vite多入口页面配置实战:从单页应用到多页项目的平滑升级指南

Vite多入口页面配置实战&#xff1a;从单页应用到多页项目的平滑升级指南 当你已经用Vite构建了一个优雅的单页应用&#xff0c;突然业务需求要求你扩展为多页项目时&#xff0c;是否感到手足无措&#xff1f;别担心&#xff0c;这种架构演进在项目成长过程中再常见不过了。作为…...

GCC编译选项详解与优化技巧

1. GCC编译选项核心功能解析作为Linux环境下最常用的编译器套件&#xff0c;GCC的编译选项直接影响着代码的生成质量与运行效率。在实际开发中&#xff0c;合理配置编译选项往往能达到事半功倍的效果。本文将系统梳理GCC的核心编译选项&#xff0c;重点解析那些容易被忽视但极具…...

从原理到代码:固高GTS控制卡SmartHome回零功能完整开发指南(附C#示例)

从原理到代码&#xff1a;固高GTS控制卡SmartHome回零功能完整开发指南&#xff08;附C#示例&#xff09; 在工业自动化领域&#xff0c;运动控制系统的精度和可靠性往往取决于一个看似简单却至关重要的功能——回零操作。作为固高GTS系列控制卡的核心功能之一&#xff0c;Smar…...

Qt多线程数据库操作:安全分离连接,彻底解决段错误

在 Qt 开发中&#xff0c;数据库操作与多线程的搭配是一个经典难题。许多开发者都曾遇到过这样的诡异现象&#xff1a;程序运行一段时间后突然崩溃&#xff0c;堆栈指向数据库操作&#xff0c;但代码逻辑明明正确。真相只有一个——数据库连接被多个线程共享了。本文结合真实项…...