linux ecs 挂载分区

# 展示盘
lsblk
# nvme0n1     259:3    0  1.8T  0 disk 
# nvme1n1     259:0    0  1.8T  0 disk 
# nvme2n1     259:2    0  1.8T  0 disk 
# nvme3n1        259:1    0  1.8T  0 disk 


# 为nvme1n1创建一个新的分区
sudo fdisk /dev/nvme1n1
# 使用fdisk的命令序列:
# n - 新建分区
# p - 主分区
# 1 - 分区号
# 回车 - 第一个扇区(使用默认值)
# 回车 - 最后一个扇区(使用默认值)
# w - 写入新分区并退出


# 格式化新分区为ext4文件系统
sudo mkfs.ext4 /dev/nvme1n1p1
# 为分区创建挂载点
sudo mkdir /mnt/nvme1
# 将新分区挂载到挂载点
sudo mount /dev/nvme1n1p1 /mnt/nvme1


# 编辑fstab以实现开机自动挂载
#使用 blkid 的方法会自动获取设备的UUID,而不是用设备的路径(例如 /dev/nvme1n1p1)。UUID的优点是即使设备的路径在系统启动时发生变化,它也能保持不变,提供更稳定的挂载方式。
#在你给出的具体 echo 用法中,末尾使用了 0 0 而不是 0 2。数字 0 2 中的第一个 0 表示是否对文件系统进行备份。通常,只有 / 文件系统(root filesystem)会设置为 1,其他所有文件系统都设置为 0。第二个数字指的是启动时 fsck 检查文件系统的顺序,/ 文件系统设置为 1,而其他文件系统设置为 2 或更大的数字。给定 echo 命令中的 0 0 配置会停止 fsck 在启动时检查该文件系统。

sudo cp /etc/fstab /etc/fstab.bak
echo `blkid /dev/nvme1n1p1 | awk '{print $2}' | sed 's/\"//g'` /mnt/nvme1 ext4 defaults 0 2 >> /etc/fstab


#检查
# 检查 UUID
echo "检查 fstab 中的 UUID 与实际分区是否一致..."
UUID_NVME=$(sudo blkid -o value -s UUID /dev/nvme1n1p1)
UUID_FSTAB=$(grep -oP 'UUID=\K[^ ]+' /etc/fstab | grep "$UUID_NVME")
if [ "$UUID_FSTAB" != "$UUID_NVME" ]; then
    echo "错误:fstab 中的 UUID 与实际分区不一致。"
    exit 1
else
    echo "UUID 检查通过。"
fi

# 测试 fstab 设置是否正确
echo "测试 fstab 配置..."
sudo mount -a
if [ $? -ne 0 ]; then
    echo "错误:fstab 配置测试失败,请检查 fstab 文件的格式和设置。"
    exit 1
else
    echo "fstab 配置测试通过。"
fi

# 验证挂载点
echo "验证挂载点是否挂载成功..."
MOUNT_POINT=$(mount | grep nvme1n1p1)
if [ -z "$MOUNT_POINT" ]; then
    echo "错误:/dev/nvme1n1p1 分区没有被挂载到预期的挂载点。"
    exit 1
else
    echo "/dev/nvme1n1p1 分区挂载成功。"
fi

echo "所有检查已通过,没有检测到问题。"

#!/bin/bash# 函数:检查分区是否已挂载
is_mounted() {local PARTITION=$1mount | grep -q "$PARTITION"return $?
}# 函数:为磁盘创建新分区
create_partition() {local DEVICE=$1echo -e "n\np\n1\n\n\nw" | sudo fdisk $DEVICElocal PARTITION="${DEVICE}p1"echo $PARTITION
}# 函数:格式化分区
format_partition() {local PARTITION=$1sudo mkfs.ext4 $PARTITION
}# 函数:挂载分区
do_mount() {local PARTITION=$1local MOUNTPOINT=$2sudo mkdir -p $MOUNTPOINTsudo mount $PARTITION $MOUNTPOINT
}# 函数:更新 fstab 文件
update_fstab() {local PARTITION=$1local MOUNTPOINT=$2sudo cp /etc/fstab /etc/fstab.baklocal UUID=$(sudo blkid -o value -s UUID $PARTITION)echo "UUID=$UUID $MOUNTPOINT ext4 defaults 0 2" | sudo tee -a /etc/fstab
}# 函数:检查挂载和 fstab
check_mount_and_fstab() {local PARTITION=$1local MOUNTPOINT=$2# 检查 UUIDecho "检查 fstab 中的 UUID 与实际分区是否一致..."local UUID=$(sudo blkid -o value -s UUID $PARTITION)local UUID_FSTAB=$(grep -w "$UUID" /etc/fstab)if [ -z "$UUID_FSTAB" ]; thenecho "错误:fstab 中的 UUID 与实际分区不一致。"exit 1elseecho "UUID 检查通过。"fi# 测试 fstab 设置是否正确echo "测试 fstab 配置..."sudo mount -o remount $MOUNTPOINTif [ $? -ne 0 ]; thenecho "错误:fstab 配置测试失败,请检查 fstab 文件的格式和设置。"exit 1elseecho "fstab 配置测试通过。"fi# 验证挂载点是否挂载成功echo "验证挂载点是否挂载成功..."if ! mount | grep -q "$MOUNTPOINT"; thenecho "错误:$PARTITION 分区没有被挂载到预期的挂载点。"exit 1elseecho "$PARTITION 分区挂载成功。"fi
}# 主函数
main() {# 设备和挂载点的数组declare -A DEVICES=( ["nvme0n1"]="/mnt/nvme0" ["nvme1n1"]="/mnt/nvme1" ["nvme2n1"]="/mnt/nvme2" ["nvme3n1"]="/mnt/nvme3" )# 展示所有盘信息lsblk# 遍历所有 NVMe 设备for DEVICE in "${!DEVICES[@]}"; doecho "处理设备 /dev/$DEVICE ..."# 检查是否有分区已挂载if ! is_mounted "/dev/${DEVICE}p1"; thenecho "没有挂载的分区,正在创建新分区并挂载..."# 创建并格式化分区PARTITION=$(create_partition "/dev/$DEVICE")format_partition "$PARTITION"# 挂载分区和更新 fstabdo_mount "$PARTITION" "${DEVICES[$DEVICE]}"update_fstab "$PARTITION" "${DEVICES[$DEVICE]}"# 检查挂载和 fstab 更新check_mount_and_fstab "$PARTITION" "${DEVICES[$DEVICE]}"echo "/dev/$DEVICE 分区创建并挂载完成。"elseecho

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

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

相关文章

机器学习-1

文章目录 前言机器学习基本定义 练习题 前言 在本片开始将为大家介绍机器学习相关的知识点。 机器学习基本定义 夏天,我们通常会去水果店里买西瓜,我们看到一个根蒂蜷缩、敲起来声音浑浊的青绿色的西瓜,我们提着西瓜就去结账了,…

关于StartAI本地部署相关问题解答

很多小伙伴们都有接入自己本地SD的需求,对此小编整理了一些相关问题~ 一、本地部署相关条件 对于想要本地部署的小伙伴要了解,相对于使用StartAI试用引擎本地部署更加考验电脑硬件配置备噢~ 流畅使用要nvidia显卡,6g以上显存(最…

Linux按键输入实验-测试新的设备树文件

一. 简介 前面一篇文章学习在设备树文件中创建按键的设备节点信息。文章地址如下: Linux键盘输入实验-创建按键的设备节点-CSDN博客 本文对创建了按键设备节点的设备树文件进行测试,确认按键的设备节点信息是否已创建好。 二. 测试创建的按键设备节点是否存在 1. 拷贝…

图解知识蒸馏

soft labels与soft predictions越接近越好,通过Loss Fn来实现,产生的数值叫做distillation loss,也叫soft loss。 hard label y与hard prediction越接近越好,通过Loss Fn来实现,产生的数值叫做student loss&#xff0c…

什么是VR虚拟现实元宇宙|VR设备购买|VR设备零售店

VR(Virtual Reality,虚拟现实)元宇宙是指基于虚拟现实技术构建的一个虚拟世界,这个世界可以模拟现实世界或者超出现实世界的一切事物和活动。在这个虚拟世界里,用户可以通过虚拟现实设备(如头戴式显示器、手…

本地搭建xss平台并获取cookie演练

前言 一般而言,搭建xss平台是不被允许的,但是由于教育的目的,搭建xss平台更能让学习者更加直观感受xss漏洞对我们的危害和它的重要性。 搭建xss平台 1.搭建xss平台的基础是在phpstudy一个集成环境上的,所有第一步要安装phpstudy&a…

vue3相关

vue3官方文档:Vue3 vue3创建应用实例 creatApp(根组件) vue3挂载全局组件、router、store use() 简介OptionsAPI与CompositionAPI的区别 1、OptionsAPI数据、方法、计算属性等,是分散在data、methods、computed中的,若想新增或者修改一…

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境(gethub上面的) alert(1) 二、正式开始闯关 0x01 源码: 思路:闭…

前后端依赖下载上传

在某些情况下,可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖,你可以将它们保存在本地,然后在没有网络连接时使用,提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

SpringBoot整合rabbitmq-扇形交换机队列(三)

说明:本文章主要是Fanout 扇形交换机的使用,它路由键的概念,绑定了页无用,这个交换机在接收到消息后,会直接转发到绑定到它上面的所有队列。 大白话:广播模式,交换机会把消息发给绑定它的所有队…

异常网络下TCP的可靠服务机制(慢启动、拥塞避免、快重传、快恢复)

目录 TCP超时重传拥塞控制概述慢启动和拥塞避免下面讲解发送端如何判断拥塞发生。 快速重传和快速恢复 本文描述TCP在异常网络下的处理方式 以保证其可靠的数据传输的服务 TCP超时重传 tcp服务能够重传其超时时间内没有收到确认的TCP报文段,tcp模块为每一个报文段都…

代码随想录算法训练营day60 || 647.回文子串,516. 最长回文子序列

动态规划,字符串性质决定了DP数组的定义 | LeetCode:647.回文子串_哔哩哔哩_bilibili 动态规划再显神通,LeetCode:516.最长回文子序列_哔哩哔哩_bilibili 647.回文子串 // 时间复杂度O(n^2) // 空间复杂度O(n^2) class Solution …

看到极氪001这价格这配置,小米SU7我不等了

文 | AUTO芯球 作者 | 李诞 新款升级1100多项,还是原来老款的价格,新款极氪001你这样子卷,友商没法玩啊。 我惊呆了朋友们 不是极氪001一发布 第二天苹果就宣布造车失败 而是极氪001一直是30万以上中国品牌纯电轿车/SUV、高端猎装车销量…

MySQL 5.7.31详细下载安装配置

1、下载步骤 下载完毕后将文件解压到你想保存到的盘和目录内。我是将文件解压到D:\Mysql目录下面 2.配置环境变量 1.系统—>高级系统设置—>环境变量—>系统变量 在系统变量中点击新建,变量名为量名为:MYSQL_HOME,添加你的mysql…

浅析扩散模型与图像生成【应用篇】(四)——Palette

4. Palette: Image-to-Image Diffusion Models 该文提出一种基于扩散模型的通用图像转换(Image-to-Image Translation)模型——Palette,可用于图像着色,图像修复,图像补全和JPEG图像恢复等多种转换任务。Palette是一种…

将编译好的FFmpeg导入iOS项目使用(swift)

1. 将ffmpeg 拖入工程并添加search Paths路径 2.添加所需的framework和lib AudioToolbox.framework,CoreMedia.framework,libbz2,libbz,libiconv,VideoToolbox.framework 3.使用 在桥接header中引入头文件

vue中$nextTick的使用

在Vue.js中,$nextTick是一个用于延迟执行一段代码的实例方法。它的作用是在DOM更新后立即执行回调函数,确保在DOM更新完成后再进行操作。以下是其具体用法: 使用场景:当需要在数据变化后立即对DOM进行操作时,可以使用…

MySql出现无法正常启动(0x000007b)的快速解决

目录 1.背景介绍 2.解决方案 1.背景介绍 昨天在清理电脑内存空间的时候,不小心将一些重要的系统组件删除,导致无法正常启动mysql,一开始是提示经过msvcp120.dll,于是找到下载dll的网站将组件补充进system,但随后又提…

nodejs配置环境变量后不生效(‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件)

一、在我们安装Node.js后,有时候会遇到node命令不管用的情况,关键是在安装时候已经添加配置了环境变量,向下面这样 但是还是不管用,这是因为环境变量配置不正确,权重不够,或者是命令冲突导致,解…

leetcode:135.分发糖果

解题思路:分发糖果时,既要考虑左面,又要考虑右面,如果同时考虑,就会顾此失彼,所以我们可以先考虑右边,再考虑左边,分别正序、逆序进行遍历。逆序遍历时相当于重置candy数组。 运用贪…