【腳本】Linux磁盤目錄掛載腳本(不分區)

以下是一個不帶分區,直接掛載整個磁盤到指定目錄的腳本。該腳本會檢查磁盤是否已掛載,自動創建文件系統(可選),并配置開機自動掛載:

#!/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…