Linux服务器磁盘分区、挂载、卸载及报错处理

news/2024/4/27 10:28:59/文章来源:https://blog.csdn.net/zzddada/article/details/129264256

整体操作是:先对磁盘进行格式化,格式化后挂载到需要的挂载点,最后添加分区启动表,以便下次系统启动时自动挂载。

一、linux分区

1、Linux来说wulun有几个分区,分给哪一目录使用,他归根结底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

2、Linux采用了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这是要载入的一个分区将使它的存储空间在一个,目录下获得。

分区和文件关系示意图:

硬盘说明:

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

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

3、对于SCSI硬盘则标识为"sdx~",SCSI硬盘是用"sd"来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样(x可以为abcd分别对应第1、2、3、4块硬盘)。

二、分区挂载

准备工作:查看当前所有设备挂载情况:

指令:lsblk 或者lsblk -f

这里sda1、2、3分别代表第一块硬盘的第一分区第二分区...

步骤1:新建/安装一块硬盘(虚拟机/云服务)

在虚拟机菜单中,设置增加一块硬盘,完成后重启可以生效识别

安装好后可以通过命令查看到闲置的磁盘:

lsblk命令查看磁盘信息:

其中sdb就是新加的磁盘

或 :fdisk -l 查看磁盘信息

步骤2:虚拟机硬盘分区

不需要分区 可以跳过步骤2-3

分区指令:fdisk /dev/sdb

开始对sdb分区

m 显示命令列表

p 显示磁盘分区同fdisk -l

n 新增分区

d 删除分区

w 写入并退出

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

[root@kongchao03 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0xdf03b737 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):m            
命令操作a   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitiong   create a new empty GPT partition tableG   create an IRIX (SGI) partition tablel   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@kongchao03 ~]# 

步骤3:虚拟机硬盘分区格式化

找到未使用的磁盘,对其进行格式化。

操作数据盘符前,请自行确认磁盘是否有使用过,如有重要数据请谨慎操作,以免导致数据丢失,带来不必要的麻烦)。

格式化命令为:

格式化指令:mkfs -t ext4 /dev/sdb1 或 mkfs.ext4 /dev/sdb1

其中ext4是分区类型。

格式化磁盘,格式化之后才会分配UUID。

mkfs -t ext4 /dev/sdb1
lsblk -f

步骤4:磁盘挂载

挂载前,先在服务器上创建一个需要挂载的挂载点。

例:将磁盘挂载到根目录下的newdisk目录下

  • mount挂载

挂载语法:mount 设备名称 挂载目录 (挂载目录是任意的)
[root@kongchao03 ~]# cd /
[root@kongchao03 /]# mkdir newdisk
[root@kongchao03 /]# mount /dev/sdb1 /newdisk
[root@kongchao03 /]# lsblk -f

如果挂载不成功显示的错误提示:/dev/vdb is write-protected, mounting read-only 这个是说明dev/vdb为只读状态,可以先执行第2部操作,先格式化磁盘就可以啦。

步骤5:实现永久挂载(即重启不消失)

修改fstab,使得系统启动时自动挂载磁盘,通过修改 /etc/fstab实现自动挂载。

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

[root@kongchao03 /]# vim /etc/fstab 
[root@kongchao03 /]# mount -a

步骤6:查看磁盘分配结果

  • df -h查询磁盘使用情况

[root@kongchao03 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda2        17G  5.8G   11G   37% /
devtmpfs        978M     0  978M    0% /dev
tmpfs           993M     0  993M    0% /dev/shm
tmpfs           993M  9.0M  984M    1% /run
tmpfs           993M     0  993M    0% /sys/fs/cgroup
/dev/sdb1       991M  2.6M  922M    1% /newdisk
/dev/sda1       991M  128M  797M   14% /boot
tmpfs           199M   20K  199M    1% /run/user/0
/dev/sr0        730M  730M     0  100% /run/media/root/20210907_143734
[root@kongchao03 ~]# 
  • du -h查询指定目录磁盘占用情况

指令: du [参数] /目录(查询指定目录的磁盘占用情况,默认为当前目录)

参数选项:

-s 指定目录占用大小汇总

-h 带计量单位

-a 含文件

--max-depth=1 子目录的深度

-c 列出明细的同时,增加汇总值

参数可以联合使用

示例:查询/opt目录的磁盘占用情况,深度为1

[root@kongchao03 /]# cd /opt
[root@kongchao03 opt]# ls
rh
[root@kongchao03 opt]# du -h --max-depth=1 /opt
4.0K/opt/rh
8.0K/opt
[root@kongchao03 opt]# 

参数联合起来使用:

[r...]# du -hac --max-depth=1 /opt
4.0K	/opt/rh
8.0K	/opt
8.0K	总用量

步骤7(可忽略):输入:sync 将缓存写入服务器;

步骤8(可忽略):执行 init -6 重启服务器,后再查看挂载情况;

重启服务器后,输入命令: df -lh 查看该磁盘是否正常挂载。或者使用 lsblk

步骤9:取消挂载

  • umount取消挂载

语法:

umount 挂载点 或 umount 设备名
 umount /dev/sdb1lsblk -f
用命令行挂载(mount /dev...),重启后会失效,即重启后挂载点消失

三、异常处理:

1、umount卸载挂载出现"target is busy"报错解决办法

我们在挂载数据硬盘的过程中应该会有看到有原本已经挂载的目录需要先卸载。这里一般用到 umount 命令卸载。但是这里会有时候出现"target is busy"报错的问题,这个问题根本问题在于当前要卸载的目录还有软件在运行。

我们要解决的办法就是停止当前运行的软件。这里有几个解决办法,我们可以参考。

1、通过lsof命令处理

老蒋一般会通过lsof命令检查当前是否有运行的软件绑定在对应的目录。

lsof /www/

比如我这里检查www目录是否有软件在运行,如果有的话,我们可以对应PID先停止或者提前停止对应的软件,比如php、mysql等。

只有lsof检测到没有软件运行,那我们去umount卸载就没有问题报错。

2、使用fuser命令处理

在使用 fuser命令之前需要安装组件支持。

yum install psmisc -y

然后一样需要类似lsof一样查看是否有在运行的进程。

fuser -mv /www/

如果有的话,然后针对进程去停止。

fuser -kv /www/

一个命令删除全部进程。

这样,我们通过2个办法检测和删除占用进程后,再卸载和挂载。

2、umount卸载光盘提示 umount: /mnt: target is busy. 怎么办?

一、红色下划线:df -h 查看设备信息。/dev/sr0 是光盘,/mnt是挂载点的路径。

黄色下划线:umount /mnt 卸载的时候出现 umount: /mnt: target is busy. 提示设备忙。磁盘正在使用,无法直接卸载。需要将当前使用数据盘的进程杀掉,才能卸载。

二、安装 psmisc 工具

Psmisc 软件包包含三个帮助管理/proc目录的程序。

fuser 显示使用指定文件或者文件系统的进程的PID。

killall 杀死某个名字的进程,它向运行指定命令的所有进程发出信号。

pstree 树型显示当前运行的进程。

可以通过 rpm -qa psmisc 查看有没有安装,如果有系统会反馈安装程序的信息。

如果没有安装 psmisc 系统没有反馈。

那么,就需要安装 psmisc命令: yum -y install psmisc 或 apt -y install psmisc 。

等待安装完成,安装完成后系统会反馈 psmisc 已经安装完毕。并且 通过 rpm -qa psmisc 可以查看到 psmisc 程序的信息。

三、红色划线:fuser -mv /mnt/ 查看 /mnt/ 的进程状态。可以看到 PID 1340 进程正在运行。

黄色下划线:fuser -kv /mnt/ 杀掉访问文件的进程。

蓝色下划线:再用 fuser -mv /mnt/ 查看 /mnt/ 。PID 1340 进程已经被杀掉。

-m:指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。所有访问这个文件或者文件系统的进程都会被列出来。

-v:详细模式。进程以 ps 的方式显示,包含PID,USER,COMMAND,如果是内核访问的 PID 为 kernel。

-k:指定 PID,就杀掉指定PID的进程。如果没有指定 PID 就会发送SIGKILL信号,杀掉所有进程。

四、此时用 umount /mnt。已经可以卸载了,df -h 查看设备状态 /mnt 也已经成功卸载。

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

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

相关文章

549、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(三)】 2023.02.28

目录一、Spring 整合 RocketMQ1.1 消息生产者1.2 消息消费者1.3 Spring 配置文件1.4 运行实例程序二、参考链接一、Spring 整合 RocketMQ 不同于 RabbitMQ、ActiveMQ、Kafka 等消息中间件,Spring 社区已经通过多种方式提供了对这些中间件产品集成,例如通…

Linux | 2. 用户管理

如有错误,恳请指出。 1. 设置文件权限 权限设置如下: root表示文件所有者,stud1表示文件所属组。其他用户无法访问。更改指令是chown。 更改目录文件所属组:chown .lab lossfound/更改目录文件所有者:chown lab loss…

html实现浪漫的爱情日记(附源码)

文章目录1.设计来源1.1 主界面1.2 遇见1.3 相熟1.4 相知1.5 相念2.效果和源码2.1 动态效果2.2 源代码2.3 代码结构源码下载更多爱情表白源码作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/129264757 html实现浪漫的爱情…

Javaweb复习之HTTPTomcatServelet

1.Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 JavaWeb就是用Java技术来解决相关web互联网领域的技术栈 1.2 JavaWeb技术栈 B/S 架构:Browser/Server,浏览器/服务器 架构模…

Linux: malloc()的指向指针发生指向偏移后,释放前需要将指针指向复原。

Linux: malloc()的指向指针发生指向偏移后&#xff0c;释放前需要将指针指向复原。 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <time…

MIT:只需一层RF传感器,就能为AR头显赋予“X光”穿透视力

近年来&#xff0c;AR在仓库、工厂等场景得到应用&#xff0c;比如GlobalFoundries、亚马逊、菜鸟裹裹就使用摄像头扫描定位货品&#xff0c;并使用AR来导航和标记。目前&#xff0c;这种方案主要基于视觉算法&#xff0c;因此仅能定位视线范围内的目标。然而&#xff0c;在一些…

C++ string类(二)及深浅拷贝

一、string类方法使用举例1.迭代器迭代器本质&#xff1a;指针&#xff08;理解&#xff09;迭代器&#xff1a;正向迭代器&#xff1a; begin() | end() 反向迭代器&#xff1a; rbegin() | rend()2.find使用//找到s中某个字符 void TestString3() {string s("AAADEFNUIE…

携程面经1

面经 HDFS读写流程 1.读流程 客户端向NameNode发起读请求&#xff08;如果存在&#xff09;NameNode返回一批block地址客户端与第一个block的拓扑距离最近的节点建立连接以packet&#xff08;64kb&#xff09;的单位读取数据块。一个block读取完成后客户端会断开与该DataNod…

5个开源的Java项目快速开发脚手架

概览 &#xff1a; GunspigRuoYiJeecg-bootiBase4J 一、Guns 推荐指数 &#xff1a;⭐⭐⭐⭐⭐ 简介 采用主流框架 &#xff1a; 基于 Spring Boot2.0版本开发&#xff0c;并且支持 Spring Cloud Alibaba 微服务。功能齐全 &#xff1a;包含系统管理&#xff0c;代码生成&a…

这么强才给我28k,我头都不回,转身拿下40k~

时间真的过得很快&#xff0c;眨眼就从校园刚出来的帅气小伙变成了油腻大叔&#xff0c;给各位刚入道的测试朋友一点小建议&#xff0c;希望你们直通罗马吧&#xff01; 如何选择自己合适的方向 关于选择测试管理&#xff1a; 第一&#xff0c;你一定不会是一个喜欢技术&…

Vue的组件(注册、局部、组件复用、props、emit、生命周期)全解

文章目录前言知识点组件注册局部组件组件复用组件间通信props 类型检测子父组件通信之 emit动态组件生命周期函数前言 Vue 支持模块化和组件化开发&#xff0c;可以将整个页面进行模块化分割&#xff0c;低耦合高内聚&#xff0c;使得代码可以在各个地方使用。 知识点 组件注册…

accent-color一行代码,让你的表单组件变好看

不做切图仔,从关注本专栏开始 文章目录 不做切图仔,从关注本专栏开始前言兼容性语法继承性智能前言 在之前的网站开发中,我们是很难去更改的你某些控件的颜色。我们可能要使用各种技巧来自定义我们的控件。好消息是,今天如果我们想要去改变控件的颜色,css为我们提供了一些…

心系区域发展,高德用一体化出行服务平台“聚”力区域未来

交通&#xff0c;是城市的血脉。通过对人、资源、产业的连接&#xff0c;交通建设往往是城市和区域经济发展的前提。不过&#xff0c;在度过了“要想富&#xff0c;先修路”的初级建设阶段后&#xff0c;交通产业内部也出现了挑战&#xff0c;诸如城市秩序、发展成本、用户使用…

【目标检测】Dynamic Head Unifying Object Detection Heads with Attentions

文章目录一、背景二、方法2.1 scale-aware attention2.2 spatial-aware attention2.3 task-aware attention2.4 总体过程2.5 和现有的检测器适配2.6 和其他注意力机制的关联三、效果四、代码论文链接&#xff1a; https://arxiv.org/pdf/2106.08322.pdf代码链接&#xff1a;htt…

Windows 安装RocketMQ

文章目录一、RocketMQ是什么&#xff1f;二、准备工作1.环境要求2.下载与解压3.启动MQ4. 测试是否成功启动三、安装管理端1. 代码下载2. 修改配置文件3. 启动MQ客户端jar包四、rocketMQ代码的使用入门五、问题记录1. 启动mqbroker.cmd没有反应2.消费者重复消费消息一、RocketMQ…

NCRE计算机等级考试Python真题(六)

第六套试题1、算法的时间复杂度是指A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数正确答案&#xff1a; D2、下列关于栈的叙述中正确的是A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进…

【Django功能开发】如何正确使用定时任务(启动、停止)

系列文章目录 【Django开发入门】ORM的增删改查和批量操作 【Django功能开发】编写自定义manage命令 文章目录系列文章目录前言一、django定时任务二、django-apscheduler基本使用1.安装django-apscheduler2.配置settings.py的INSTALLED_APPS3.通过命令生成定时记录表3.如何创…

嵌入式 linux 系统开发网络的设置

目录 一、前言 二、linux网络静态地址设置 前言 为什么要对linux系统下的ubuntu进行网络设置呢&#xff1f; 因为我们在嵌入式开发中&#xff0c;我们要保证windows系统、linux系统、开发板的ip要处于同一个网段&#xff0c;而默认ubuntu下的linux系统的ip是动态分配的&#…

如何彻底删除SQL Server 2008中的登录账号

我个人遇到的最烦人的事情之一是 SQL Server Management Studio中“服务器名称和登录名”对话框的下拉列表。 以下是我想从 SSMS 连接屏幕中删除某些内容的两种情况: 键入的服务器名称不正确 服务器将来不需要。当我看到服务器的名称,它已经存在了很长一段时间,我知道我不会…

图像处理实战--Opencv实现人像迁移

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来学习一下如何使用Opencv实现人像迁移&#xff0c;欢迎大家一起参与探讨交流~ 本文目录&#xff1a;一、实验要求二、实验环境三、实验原理及操作1.照片准备2.图像增强3.实现美颜功能4.背景虚化5.图像二值化处理6.人…