以下是一个不带分区,直接挂载整个磁盘到指定目录的脚本。该脚本会检查磁盘是否已挂载,自动创建文件系统(可选),并配置开机自动挂载:

#!/bin/bash# 磁盘直接挂载脚本(不分区)
# 使用方法: sudo ./mount_disk_raw.sh /dev/sdb /mnt/data ext4 [format]# 参数检查
if [ $# -lt 2 ]; thenecho "用法: $0 <磁盘设备> <挂载点> [文件系统类型=ext4] [是否格式化=yes/no]"exit 1
fiDISK="$1"
MOUNT_POINT="$2"
FS_TYPE="${3:-ext4}"  # 默认使用ext4
FORMAT="${4:-yes}"    # 默认格式化磁盘LOG_FILE="/var/log/disk_mount_raw.log"# 日志函数
log() {local message="[$(date '+%Y-%m-%d %H:%M:%S')] $1"echo "$message"echo "$message" >> "$LOG_FILE"
}# 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; thenlog "错误: 请使用root权限运行此脚本"exit 1
fi# 检查磁盘设备是否存在
if [ ! -b "$DISK" ]; thenlog "错误: 磁盘设备 $DISK 不存在"exit 1
fi# 检查磁盘是否已挂载
if mount | grep -q "$DISK"; thenlog "警告: 磁盘 $DISK 已挂载"exit 0
fi# 创建挂载点目录
if [ ! -d "$MOUNT_POINT" ]; thenlog "创建挂载点目录: $MOUNT_POINT"mkdir -p "$MOUNT_POINT"if [ $? -ne 0 ]; thenlog "错误: 无法创建挂载点目录"exit 1fi
fi# 格式化磁盘(如果需要)
if [ "$FORMAT" = "yes" ]; thenlog "开始格式化磁盘 $DISK$FS_TYPE 文件系统..."case "$FS_TYPE" inext4)mkfs.ext4 -F "$DISK";;xfs)mkfs.xfs -f "$DISK";;btrfs)mkfs.btrfs -f "$DISK";;*)log "错误: 不支持的文件系统类型: $FS_TYPE"exit 1;;esacif [ $? -ne 0 ]; thenlog "错误: 格式化磁盘失败"exit 1filog "磁盘格式化完成"
elselog "跳过格式化步骤"
fi# 获取磁盘UUID
UUID=$(blkid -s UUID -o value "$DISK")
if [ -z "$UUID" ]; thenlog "警告: 无法获取磁盘UUID,将使用设备路径挂载"UUID="$DISK"
elselog "获取到磁盘UUID: $UUID"
fi# 挂载磁盘
log "尝试挂载 $DISK$MOUNT_POINT"
mount -t "$FS_TYPE" "$DISK" "$MOUNT_POINT"if [ $? -eq 0 ]; thenlog "挂载成功: $DISK -> $MOUNT_POINT"# 添加到fstab实现开机自动挂载FSTAB_ENTRY="UUID=$UUID  $MOUNT_POINT  $FS_TYPE  defaults  0 0"if ! grep -q "$MOUNT_POINT" /etc/fstab; thenecho "$FSTAB_ENTRY" >> /etc/fstablog "已添加到 /etc/fstab"elselog "警告: /etc/fstab 中已存在 $MOUNT_POINT 的挂载记录"log "请手动检查 /etc/fstab 是否需要更新"fi
elselog "错误: 挂载失败"exit 1
fi# 验证挂载
log "挂载结果:"
df -h | grep "$MOUNT_POINT"

使用说明:

  1. 基本用法(格式化并挂载):

    sudo ./mount_disk_raw.sh /dev/sdb /mnt/data ext4
    
  2. 不格式化直接挂载(适用于已格式化的磁盘):

    sudo ./mount_disk_raw.sh /dev/sdb /mnt/data ext4 no
    
  3. 指定其他文件系统(如XFS):

    sudo ./mount_disk_raw.sh /dev/sdb /mnt/data xfs
    

脚本功能:

  • 自动检测磁盘是否存在和已挂载
  • 支持多种文件系统(ext4、xfs、btrfs)
  • 可选格式化磁盘
  • 使用UUID而非设备路径配置/etc/fstab(更可靠)
  • 详细的日志记录(/var/log/disk_mount_raw.log)
  • 完整的错误处理

注意事项:

  • 数据安全:格式化会清除磁盘上的所有数据,请确保已备份重要数据
  • 权限要求:必须使用root权限运行
  • 生产环境:建议先在测试环境验证脚本行为
  • 文件系统选择:根据实际需求选择ext4或XFS(参考上一轮对话的对比)

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

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

相关文章

壁纸网站分享

壁纸网站链接&#xff1a; 1.Microsoft Design - Wallpapers&#xff1a;https://wallpapers.microsoft.design/?refwww.8kmm.com 2.哲风壁纸&#xff1a;https://haowallpaper.com/wallpaperForum 3.壁纸湖&#xff1a;https://bizihu.com/ 4.极简壁纸&#xff1a;https://bz…

XILINX FPGA如何做时序分析和时序优化?

时序分析和时序优化是FPGA开发流程中关键步骤&#xff0c;确保设计在目标时钟频率下正确运行&#xff0c;避免时序违例&#xff08;如建立时间或保持时间不足&#xff09;。以下以Xilinx Kintex-7系列FPGA为例&#xff0c;详细介绍时序分析和时序优化的方法、工具、流程及实用技…

linux screen轻松管理长时间运行的任务

以下是针对 Alpine Linux 环境下 screen 的安装与使用指南&#xff0c;结合迁移数据场景的具体操作步骤&#xff1a; 1. 安装 screen‌ 在 Alpine Linux 中需通过 apk 安装&#xff08;非默认预装&#xff09;&#xff1a; apk add screen 验证安装&#xff1a; screen --…

VR制作公司业务范围

VR制作公司概念、能力与服务范围 虚拟现实&#xff08;Virtual Reality, VR&#xff09;技术&#xff0c;作为当代科技的前沿领域&#xff0c;通过计算机技术模拟出真实或虚构的世界环境&#xff0c;使用户能够沉浸其中并进行交互体验。VR制作公司&#xff0c;是这一领域的专业…

STM32之28BYJ-48步进电机驱动

目录 一、引言 二、28BYJ-48步进电机简介 2.1 基本特性 2.2 内部结构 2.3 工作模式 2.4 驱动原理 2.5 性能特点 2.6 驱动方案 2.7 使用注意事项 三、ULN2003驱动板简介 3.1 基本概述 3.2 电路结构 3.3 驱动原理 3.4 接口定义 3.5 使用注意事项 四、…

TDSQL如何查出某一列中的逗号数量

在 TDSQL 中&#xff0c;要统计某一列里逗号的数量&#xff0c;可借助字符串函数来实现。下面为你介绍具体的实现方法&#xff1a; sql SELECT your_column,LENGTH(your_column) - LENGTH(REPLACE(your_column, ,, )) AS comma_count FROM your_table;下面对这段 SQL 进行详细…

如何避免服务器出现故障情况?

服务器作为存储数据信息的重要网络设备&#xff0c;能够保护企业重要数据的安全性&#xff0c;但是随着网络攻击的不断拓展&#xff0c;各个行业中的服务器也会遭受到不同类型的网络攻击&#xff0c;严重的会导致服务器业务中断出现故障&#xff0c;给企业带来巨大的经济损失。…

C++ 优先级队列

一、引言 队列的特性是先进先出。优先级队列的本质是一个有序队列&#xff0c;根据成员的优先级&#xff0c;对队列中的成员进行排序。优先级队列默认是大顶堆&#xff0c;即堆顶元素最大 二、常用函数 empty()size()top()push()emplace()pop()swap() 三、代码示例 class …

学习笔记(27):线性回归基础与实战:从原理到应用的简易入门

线性回归&#xff1a;通过拟合线性方程&#xff08;如 \(y w_1x_1 w_2x_2 b\)&#xff09;预测房价、销售额等连续变量&#xff0c;需掌握特征标准化、正则化&#xff08;L1/L2&#xff09;防止过拟合。应用场景&#xff1a;金融领域的股价预测、电商用户消费金额预估。 线性…

kubesphere安装openelb

kubesphere安装openelb 1.安装openelb 2.修改配置文件 1.命令直接修改 $ kubectl edit configmap kube-proxy -n kube-system ipvs:strictARP: truemode: "ipvs"重启kube-proxy组件 $ kubectl rollout restart daemonset kube-proxy -n kube-system 2.通过界面去修…

数据库10:MySQL的数据类型与约束和属性设置,数据模式

一.数据类型 整数类型&#xff08;integer types&#xff09; 数据类型字节有符号范围无符号范围说明tinyint1-128 ~ 1270 ~ 255非常小的整数smallint2-32,768 ~ 32,7670 ~ 65,535小整数mediumint3-8,388,608 ~ 8,388,6070 ~ 16,777,215中等整数int4-2,147,483,648 ~ 2,147,4…

uniapp项目中node_modules\sass\sass.dart.js的体积过大怎么处理

用Node-Sass替代&#xff08;如果适用&#xff09;&#xff1a;虽然Dart Sass是Sass的主要实现之一&#xff0c;但有时它可能会比Node-Sass占用更多的空间。如果你不需要Dart Sass特有的功能&#xff0c;可以考虑切换到Node-Sass&#xff08;注意Node-Sass已停止维护&#xff0…

界面组件DevExpress WPF中文教程:Grid - 如何获取节点?

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

Kalibr解毒填坑(一):相机标定失败

文章目录 📚简介🍀 解毒踩坑🚀 主点错误📚简介 相机内参标定通常涉及确定焦距(fx, fy)、主点(cx, cy)、畸变系数(径向和切向)等参数。Kalibr是一个开源的标定工具,支持多相机、IMU和联合标定,适用于复杂的传感器系统。 但kalibar标定相机内参受到数据和配置影…

Swift 的基础设计哲学是 “通过模块化组合实现安全与效率的平衡“,就像用标准化工业零件建造摩天大楼

一、基础模块&#xff1a;地基与钢结构&#xff08;Basic Types & Collections&#xff09; 比喻&#xff1a;积木与工具箱&#xff0c;决定建筑的稳定性和容量。场景&#xff1a;搭建程序的基础结构&#xff0c;如变量、数据类型、运算符。包含&#xff1a;基本语法、运算…

【RK3568+PG2L50H开发板实验例程】Linux部分/FPGA dma_memcpy_demo 读写案例

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1.案例简介 案例功能描述&#xff1a;ARM端利用 PCIe总线对 FPGA的 DRAM执行读写操作。应用程序通过 ioctl函数触发 …

7.3实验部分

一、HDFS基础操作 以root用户登录&#xff0c;创建如下HDFS目录&#xff1a; /dw/yourname/input hadoop fs -mkdir -p /dw/zhanggengchen/input /dw/yourname/output hadoop fs -mkdir -p /dw/zhanggengchen/output 输出结果&#xff1a; [rootmaster hadoop-mapreduce]# ha…

[nett5: AddressedEnvelope]-源码解析

AddressedEnvelope AddressedEnvelope<M, A> 表示一个带有发送者和接收者地址的消息封装&#xff0c;常用于处理如 UDP 数据报这类含地址信息的通信场景。 public interface AddressedEnvelope<M, A extends SocketAddress> {// 实际的消息内容M content();// 消…

基于 Drone CI 实现前端自动化打包并集成 Spug 自动发布流程

前言&#xff1a;代码自动化部署目前使用的是Spug开源运维平台&#xff0c;通过docker直接部署该平台后&#xff0c;在前端自动化打包&#xff08;npm run build&#xff09;会遇见Node的版本问题&#xff0c;因为Spug容器使用的是Centos7&#xff0c;所以Node版本只支持V16&am…

【基础】Golang语言开发环境搭建(Linux主机)

目录 1. 下载并安装Go语言2. 配置环境变量3. 验证安装4. 配置Go模块5. 安装常用开发工具6. 配置IDE&#xff08;可选&#xff09;7. 第一个Go程序 在Linux主机上搭建Golang开发环境&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 下载并安装Go语言 首先从官网下载Go…