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

news2024/9/20 6:26:00

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

一、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 flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   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.coloradmin.cn/o/378247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机操作系统第一章

操作系统引论1.1操作系统的目标和作用定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性&#xff0c…

小红书达人怎么找?保姆级教程来了~

在小红书推广营销中,寻找优质的达人是最头疼的事,许多品牌往往会根据简单的小红书排名来直接进行判断认定,其实在挑选小红书达人时有许多要注意的点,接下来和小编一起根据小红书数据分析工具来筛选合适、优质的达人。 千瓜数据—…

蓝桥杯入门即劝退(二十四)重复的子字符串(被秒杀)

欢迎关注点赞评论,共同学习,共同进步! ------持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章…

浅谈MySQL主从复制

目录 1.MySQL主从复制是什么 2.MySQL主从复制的意义 3.MySQL主从复制原理 4.数据同步一致性问题 5.实现方式 1.MySQL主从复制是什么 MySQL主从复制就是指数据可以从一台MySQL的主节点复制到一个或多个从节点。 MySQL默认采用异步复制方式,这样从节点不用一直访…

【博学谷学习记录】超强总结,用心分享丨人工智能 Python基础 个人学习总结之列表排序

目录前言简述list.sort()语法返回值实例无参参数key参数reversesorted()语法返回值实例无参参数key参数reverseoperator.itemgetter功能简述实例List.sort与sored区别sorted原理:Timsort算法扩展list原理数据结构心得前言 经过一周的学习,对Python基础部…

嵌入式入门必看!调试工具安装——基于 AM64x核心板

本章节内容是为评估板串口安装USB转串口驱动程序。驱动适用于CH340、CH341等USB转串口芯片。 USB转串口驱动安装 适用安装环境:Windows 7 64bit、Windows 10 64bit。 本文测试板卡为创龙科技SOM-TL64x核心板,它是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cort…

DP(4)--区间DP

将n(1≤n≤200)堆石子绕圆形操场摆放,现要将石子有次序地合并成一堆。 规定每次只能选相邻的两堆石子合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 (1)选择一种合并石子的方案,使得做n-1次合并,得分的总…

比特数据结构与算法(第四章_下)二叉树的遍历

本章将会详细讲解二叉树遍历的四种方式,分别为前序遍历、中序遍历、后续遍历和层序遍历。在学习遍历之前,会先带大家回顾一下二叉树的基本概念。学习二叉树的基本操作前,需要先创建一颗二叉树,然后才能学习其相关的基本操作&#…

中国一直是亚马逊云科技在全球业务布局中最重要的国家之一

在走进经济筑底重启回升的2023年,我们该如何直面这场需要时间验证的修复之旅?亚马逊全球副总裁、亚马逊云科技大中华区执行董事张文翊与《经济观察报》App的“企业家说2023”栏目展开对谈,分享亚马逊云科技如何立于云端,帮助企业上…

Android ART dex2oat

一、什么是dex2oat Dex2oat (dalvik excutable file to optimized art file) ,是一个对 dex 文件进行编译优化的程序,在我们的 Android 手机中的位置是 /system/bin/dex2oat,对应的源码路径为 android/art/dex2oat/dex2oat.cc,通…

谷歌搜索技巧大全 | 谷歌高级搜索语法指令

谷歌搜索技巧是利用各种高级搜索语法或者搜索指令,让我们能够使用Google进行精确化的搜索,外贸找客户和学术文件查找都可以应用到这些搜索技巧。(大部分命令也适用百度搜索)。Google通过互联网收集数据,抓取有意义的信息,将其存储…

flask入门-4.项目实战

4. 项目实战1 1. 问答平台项目结构搭建 项目结构 config.py hostname "127.0.0.1" port 3306 username "root" password "root"database "flask_qa"# 在 app.config 中设置连接数据库的信息 SQLALCHEMY_DATABASE_URI f"…

【Redis】什么是缓存与数据库双写不一致?怎么解决?

1. 热点缓存重建 我们以热点缓存 key 重建来一步步引出什么是缓存与数据库双写不一致,及其解决办法。 1.1 什么是热点缓存重建 在实际开发中,开发人员使用 “缓存 过期时间” 的策略来实现加速数据读写和内存使用率,这种策略能满足大多数…

ECharts基础知识详细介绍

文章目录知识点ECharts 实例ECharts 基础配置组件seriesdataset用 option 描述图表titletooltiplegend 图例组件toolbox 工具栏坐标轴知识点 ECharts 实例series 与 datasetECharts 基础配置用 option 描述图表坐标系 ECharts 实例 一个网页中可以创建多个 ECharts 实例。每个…

JPA——Java.util.Date和Java.sql.Date

纵观整个项目的字段,最难搞的就是Date类型。今天我们就好好唠唠java中的两个Date类 一、Java.sql.Date 1. 构造方法 Date date new Date(System.currentTimeMillis());System.out.println(date);//2023-02-282. 常用方法: 方法作用void setTime(long…

【Java开发】JUC基础 04:Synchronized、死锁、Lock锁

1 概念介绍并发:同一个对象被多个线程同时操作📌 线程同步现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队…

强化学习RL 04: Actor-Critic Algorithm

actor: 是policy network,通过生成动作概率分布,用来控制agent运动,类似“运动员”。critic: 是value network,用来给动作进行打分,类似“裁判”。构造这两个网络,并通过environment奖励来学习这两个网络。…

AQS抽象队列同步器

aqs 抽象队列同步器,内部存储了一个valitail修饰的status 和内部类node ,来实现对共享变量并发同步队列机制,以reentrantLock为例,lock底层实际上调用的是sync的lock,会调用cas对status的状态进行修改,来确定是否获得锁…

学习 Python 之 Pygame 开发魂斗罗(七)

学习 Python 之 Pygame 开发魂斗罗(七)继续编写魂斗罗1. 载入水中图片并添加在水中的标志2. 修改玩家类函数3. 增加河的碰撞体4. 实现玩家在河中的样子继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(六)中&#…

csgo搬砖项目详细拆解,附选品+详细操作教程

项目实操 一:项目原理 csgo这款游戏不知道大家玩过没有,如果不了解的话,那你肯定知道穿越火线这款游戏吧,都是一个类型的射击游戏。 说到csgo,就得所以一下今天项目的平台steam,它是一个游戏平台&#x…