Ubuntu 硬盘分区并挂载

一、什么是挂载

  1.挂载的定义

        在 Ubuntu(或其他 Linux 系统)中,挂载(Mount) 是将一个存储设备或分区连接到系统的文件系统层次结构中的过程。挂载后,你可以通过某个目录(挂载点)访问该设备上的文件和数据。


  2.挂载的作用

        Linux 中所有设备(如硬盘、U盘、光盘等)都必须挂载后才能被访问。

  • 逻辑上的统一文件系统

    挂载后的设备成为 Linux 文件系统的一部分,用户可以通过挂载点访问设备上的内容。

  • 操作透明

    挂载的设备就像本地目录,文件操作(如复制、移动、删除)无需关心底层硬件设备。

  • 动态扩展存储

    可以随时将新设备挂载到系统中,扩展存储空间。


  3.挂载点

        挂载点是一个目录,挂载后该目录会显示设备的内容。常见挂载点:

  • /mnt:临时挂载的设备。
  • /media/username/device_name:自动挂载的设备(如U盘)。
  • /home:用户的主目录。
  • /(根目录):主文件系统挂载点。

  4.挂载的过程

        挂载通常分为两种:手动挂载 和 自动挂载

  • 手动挂载

        你需要指定设备和挂载点进行挂载。常见命令:

sudo mount <设备名> <挂载点>

# 示例
# /dev/sdb1:要挂载的设备
# /mnt:挂载点
sudo mount /dev/sdb1 /mnt
  • 自动挂载

        某些设备(如 U 盘)插入后,系统会自动挂载到 /media 下。也可以通过配置 /etc/fstab 文件,实现开机自动挂载。

  • 卸载挂载

        如果设备不再需要,可以卸载(unmount)。卸载后,设备不再连接到文件系统,数据不会丢失。

sudo umount <挂载点或设备名>

# 示例
# /mnt:临时挂载的设备
sudo umount /mnt
# 如果卸载时显示 busy,可以尝试强制卸载
sudo umount -l  <挂载点或设备名>
  • -l(lazy umount):延迟卸载,立即取消挂载点的关联,剩余任务后台完成。

  5.查看挂载信息

        5.1 使用 lsbik
lsblk -f
  • lsblk 是一个列出系统中所有块设备(block devices,如硬盘、分区、光驱等)信息的命令。
  • -f 参数专门显示每个设备的文件系统信息,包括类型、标签、UUID 等。 
# 通过 -o 参数显示指定列,可以比较 lsblk 额外添加 SIZE 列,更方便
lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT

NAME:设备名称。

  • 表示设备的路径,通常位于 /dev 目录下。
  • sda 是主硬盘设备,sda1 是其第一个分区,sda2 是第二个分区,依次类推。
  • sda 和 nvme0n1:分别表示传统硬盘(SATA)和 NVMe 固态硬盘

FSTYPE:文件系统类型。

  • 表示每个分区的文件系统类型,例如:
    • ext4:Linux 常用文件系统。
    • swap:交换分区,用于虚拟内存。
    • ntfs:Windows 常用文件系统。
    • vfat:兼容性高的 FAT 文件系统。
  • 如果没有文件系统(如原始设备),此列会为空。

LABEL:分区标签。

  • 可由用户为分区命名,方便识别。
  • rootfs 和 home 是自定义标签,常用于挂载点说明。

UUID:分区的唯一标识符(Universally Unique Identifier)。

  • 每个分区都有唯一的 UUID,方便在配置文件(如 /etc/fstab)中引用。
  • UUID 比设备名更稳定,不会因设备插拔顺序变化而改变。

FSAVAIL:可用空间(文件系统级别)。

  • 显示分区中剩余可用的空间。
  • 单位通常为 G(GB)。

FSUSE%:已用空间的百分比。

  • 显示分区的使用率。
  • 如 40% 表示此分区使用了 40% 的空间。

MOUNTPOINT:挂载点。

  • 表示分区挂载到文件系统中的路径,例如 /(根目录)、/home 或 /mnt/data
  • 如果分区未挂载,此列为空。
       5.2 使用 df
df -h
  • df(disk free)是一个命令,用于查看文件系统的总空间、已用空间、可用空间和挂载点等信息。
  • 默认情况下,输出以字节为单位,但不易阅读。使用 -h 参数,可以以更直观的单位(如 GB、MB)显示。

 6.查看磁盘分布

        6.1 使用 baobab

        安装 Disk Usage Analyzer,该工具会生成磁盘使用情况的可视化图表,方便分析。

# 安装 baobab
sudo apt-get install baobab
# 启动 baobab
baobab

        6.2 使用 fdisk
sudo fdisk -l

二、 将非空硬盘分区并挂载到 ubuntu

1. 检查当前硬盘和分区状态

        使用 lsblk 或 fdisk 检查硬盘的现有分区布局:

lsblk -o NAME,SIZE,FSTYPE,TYPE,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT

       输出如下,我们发现有一块 477G 的固态硬盘,但是已经分区了,而且只划分了一个区域就占据了所有空间,我们想把这个分区删除然后再创建一个空间为 150G 的分区 nvme0n1p1 ,然后将其挂载到 /home 下。

  • 未分区空间:显示为 Free Space
  • 已分区区域:显示为挂载点或者 TYPE 为 part

2. 重新分区

  使用 fdisk 创建新分区:

        ①使用硬盘管理工具打开 /dev/nvme0n1 硬盘:

        ②输入 m 获取帮助

        ③输入 p 查看现有分区。

        ④输入 n 创建一个新分区。

                I.选择主分区或扩展分区类型(通常选择默认)。

                II.设置起始(下图的 First sector,回车键代表默认)和结束位置(下图的 Last sector),分配剩余的空闲空间。

        ⑤输入 w 保存更改并退出。

         使用 lsblk 命令检查,一个 150G 的新分区已经划分好了。

 

格式化新分区:

        新分区需要格式化为合适的文件系统,例如 ext4:

sudo mkfs.ext4 /dev/nvme0n1p1
  • mkfs.ext4 是 mkfs 的一个具体实现,专门用于创建 ext4 文件系统。
  • /dev/nvme0n1p1 是目标分区(第四个主机硬盘的分区)。
  • 这条命令将 /dev/nvme0n1p1 分区格式化为 ext4 文件系统,所有数据会被清除。

3. 挂载分区到 /home

  临时挂载(测试):

        ①创建挂载点:

sudo mkdir -p /mnt/newhome

        ②挂载新分区:

sudo mount /dev/nvme0n1p1 /mnt/newhome

        ③检查是否挂载成功:

lsblk -o NAME,SIZE,FSTYPE,TYPE,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT

  将新分区挂载到 /home

        ①复制现有 /home 数据到新分区,耐心等待复制结束:

sudo rsync -aXS /home/ /mnt/newhome/
  • rsync:同步工具。
  • -a:归档模式,保持文件的权限、时间戳、符号链接等属性。
  • -X:保留扩展属性(例如 setfacl 设置的文件 ACL 权限)。
  • -S:处理稀疏文件(节省磁盘空间)。
  • /home/:源目录,表示 /home 目录的内容(注意 / 表示只复制内容,不包括目录本身)。
  • /mnt/newhome/:目标目录,表示数据会被复制到这个目录中。

        ②验证数据是否已完整复制:

diff -r /home/ /mnt/newhome/
  • -r:递归比较目录内所有文件和子目录。
  • /home/ 和 /mnt/newhome/:源目录和目标目录
  • 如果两个目录一致,没有任何输出。

        ③将当前的 /home 目录重命名为 /home.bak

sudo mv /home /home.bak
  • 暂时备份 /home 目录,为挂载新分区到 /home 做准备。
  • 重命名后,系统不再直接使用旧的 /home,可以安全测试新挂载点。

        ④创建新的 /home 挂载点:

sudo mkdir /home

        ⑤挂载新分区到 /home

sudo mount /dev/nvme0n1p1 /home

        ⑥修改 /etc/fstab 以永久挂载: 编辑 /etc/fstab 文件,添加以下内容,保存并退出。

/dev/nvme0n1p1 /home ext4 defaults 0 2

        ⑦测试挂载:

sudo mount -a
  • -a:自动挂载 /etc/fstab 文件中配置的所有文件系统。 

4. 验证挂载

        确保分区正确挂载到 /home,并且所有用户数据正常:

lsblk -o NAME,SIZE,FSTYPE,TYPE,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT
df -h /home

        确认数据迁移无误后,可以删除旧的 /home.bak 备份

sudo rm -rf /home.bak

参考

        Ubuntu新硬盘分区并挂载

        Linux命令-自动挂载文件/etc/fstab功能详解[转]

        linux下使用fdisk进行磁盘分区详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端开发】一文带你快速入门 JavaScript(上)Web 前端必备程序语言 | 环境搭建与基础知识

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

视频推拉流EasyDSS互联网直播点播平台技术特点及应用场景剖析

在数字科技日新月异的今天&#xff0c;视频直播和点播已经成为互联网内容传播的重要方式之一。而互联网直播点播平台EasyDSS作为功能强大的流媒体直播点播视频能力平台&#xff0c;提供了一站式的视频推拉流、转码、直播、点播、时移回放、存储等视频服务&#xff0c;广泛应用于…

Qt读写Usb设备的数据

Qt读写Usb设备的数据 问题:要读取usb设备进行通讯&#xff0c;qt好像没有对应的库支持。解决&#xff1a;libusbwindow下载 :Linux下载: QtUsb 开源的第三方库库里面的函数说明&#xff1a;window版本&#xff1a;Linux中也提供的直接下载测试代码&#xff1a;库下载&#xff1…

2024最新python使用yt-dlp

2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1&#xff09;google浏览器下载Get cookies.txt LOCALLY插件2&#xff09;导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1&#xff09;使用Pycharm(2024.3)进行代码…

一加ACE 3 Pro手机无法连接电脑传输文件问题

先说结论&#xff1a;OnePlus手机无法连接电脑传输数据的原因&#xff0c;大概率是一加数据线的问题。尝试其他手机品牌的数据线&#xff08;比如华为&#xff09;&#xff0c;再次尝试。 连接电脑方法&#xff1a; 1 打开开发者模式&#xff08;非必要操作&#xff09; 进入…

java:aqs实现自定义锁

aqs采用模板方式设计模式&#xff0c;需要重写方法 package com.company.aqs;import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock;…

linux系统下如何将xz及ISO\img等格式压缩包(系统)烧写到优盘(TF卡)

最近用树莓派做了个NAS&#xff0c;效果一般&#xff0c;缺少监控及UI等&#xff0c;详细见这篇文章&#xff1a; https://blog.csdn.net/bugsycrack/article/details/135344782?spm1001.2014.3001.5501 所以下载了专门的基于树莓派的NAS系统直接使用。这篇文章是顺便复习一…

python除了熟悉的pandas,openpyxl库也很方便的支持编辑Excel表

excel表格是大家经常用到的文件格式&#xff0c;各行各业都会跟它打交道。之前文章我们介绍了使用openpyxl和xlrd库读取excel表数据&#xff0c;使用xlwt库创建和编辑excel表&#xff0c;在办公自动化方面可以方便我们快速处理数据&#xff0c;帮助我们提升效率。 python之open…

【VUE3】新版Vue3+ElementPlus全家桶开发视频项目实战

VUE 介绍 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。 Vue.js是一个MVVM(Model - View - ViewModel)的SPA框架。 Model:数…

介绍一下atol(arr);(c基础)

hi , I am 36 适合对象c语言初学者 atol(arr)&#xff1b;是返回整数(long型)&#xff0c;整数是arr数组中字符中数字 格式 #include<stdio.h> atol(arr); 返回值arr数组中的数字 未改变arr数组 #include<stdio.h> //atol(arr); 返 <stdlib> int main…

微信小程序WXSS全局样式与局部样式的使用教程

微信小程序WXSS全局样式与局部样式的使用教程 引言 在微信小程序的开发中,样式的设计与实现是提升用户体验的关键部分。WXSS(WeiXin Style Sheets)作为微信小程序的样式表语言,不仅支持丰富的样式功能,还能通过全局样式与局部样式的灵活运用,帮助开发者构建美观且易于维…

OceanBase 大数据量导入(obloader)

现需要将源数据库&#xff08;Oracle|MySQL等&#xff09;一些表的海量数据迁移到目标数据库 OceanBase 中&#xff0c;基于常规 jdbc 驱动编码的方式涉及开发工作&#xff0c;性能效率也要看编码的处理机制。 OceanBase 官方提供了的 OceanBase Migration Service (OMS) 数据…

Spring Boot框架:英语知识网站构建指南

3系统分析 3.1可行性分析 通过对本英语知识应用网站实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本英语知识应用网站采用SSM框架&#xff0c;JAVA作为开发语…

路由器中继与桥接

一 . 背景 现在的路由器大多数已经开始支持多种网络连接模式&#xff0c;以下将以TP-Link迷你无线路由器为例进行展开介绍。在TP-Link迷你无线路由器上一般有AP&#xff08;接入点&#xff09;模式&#xff0c;Router&#xff08;无线路由&#xff09;模式&#xff0c;Repeate…

Paddle Inference部署推理(一)

一&#xff1a;Paddle Inference推理 简介 Paddle Inference 是飞桨的原生推理库&#xff0c;提供服务器端的高性能推理能力。由于 Paddle Inference 能力直接基于飞桨的训练算子&#xff0c;因此它支持飞桨训练出的所有模型的推理。 Paddle Inference 功能特性丰富&#xff…

前端 vue3 + element-plus + ts 对话框示例

【父组件】&#xff1a;SampleInput.vue&#xff0c;局部代码片段 引入子组件 ApplyItemChooseDialog.vue&#xff0c;定义变量&#xff0c;用于渲染和显示标识 <script>片段代码 import ApplyItemChooseDialog from "/views/accept/ApplyItemChooseDialog.vue&q…

【最优清零方案——贪心+滑动窗口:暴力/线段树/单调队列】

题目 暴力 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e6 10; int a[N]; int main() {int n, k;cin >> n >> k;ll sum 0;for (int i 1; i < n; i)cin >> a[i], sum a[i];int minn 1e9, pos;ll cnt 0…

Python爬取豆瓣电影全部分类数据并存入数据库

在当今数字化的时代&#xff0c;网络上丰富的影视资源信息吸引着众多开发者去挖掘和利用。今天&#xff0c;我就来和大家分享一段有趣的代码&#xff0c;它能够从豆瓣电影平台获取相关数据并存储到数据库中哦。 结果展示&#xff08;文末附完整代码&#xff09;&#xff1a; 目…

数据结构 ——— 归并排序算法的实现

目录 归并排序的思想 归并排序算法的实现 归并排序的思想 将已经有序的子序列合并&#xff0c;得到完全有序的序列&#xff0c;即先使每个子序列有序后&#xff0c;再使子序列段间有序 若将两个有序表合并成一个有序表&#xff0c;称为二路归并 归并排序步骤示意图&#x…

vue2面试题11|[2024-11-25]

1.vue源码-模版解析 <!DOCTYPE html> <html> <head><title></title> </head> <body><div idapp><h1> {{ str }} </h1>{{ str }} </div></body><script type"text/javascript" srcvue.js…