本文目录导读:

Linux环境脚本
基础磁盘初始化脚本
#!/bin/bash
# 自动初始化新磁盘脚本
DISK="/dev/sdb" # 修改为实际磁盘设备
# 检查磁盘是否存在
if [ ! -b "$DISK" ]; then
echo "错误: 磁盘 $DISK 不存在"
exit 1
fi
# 创建分区表 (GPT格式)
echo "正在创建GPT分区表..."
parted -s $DISK mklabel gpt
# 创建单个分区占据整个磁盘
echo "创建分区..."
parted -s $DISK mkpart primary 0% 100%
# 格式化分区为ext4
echo "格式化分区为ext4..."
mkfs.ext4 -F ${DISK}1
# 创建挂载点
MOUNT_POINT="/mnt/data"
mkdir -p $MOUNT_POINT
# 挂载分区
mount ${DISK}1 $MOUNT_POINT
# 获取UUID
UUID=$(blkid -s UUID -o value ${DISK}1)
# 添加到fstab(自动挂载)
echo "UUID=$UUID $MOUNT_POINT ext4 defaults 0 2" >> /etc/fstab
# 验证
echo "磁盘初始化完成!"
df -h | grep $MOUNT_POINT
多磁盘批量初始化脚本
#!/bin/bash
# 批量初始化多个磁盘
DISKS=("/dev/sdb" "/dev/sdc" "/dev/sdd")
MOUNT_BASE="/mnt"
for i in "${!DISKS[@]}"; do
DISK="${DISKS[$i]}"
MOUNT_POINT="${MOUNT_BASE}/disk$((i+1))"
echo "正在初始化 $DISK..."
# 创建分区表
parted -s $DISK mklabel gpt
# 创建分区
parted -s $DISK mkpart primary 0% 100%
# 格式化
mkfs.ext4 -F ${DISK}1
# 创建挂载点
mkdir -p $MOUNT_POINT
# 挂载
mount ${DISK}1 $MOUNT_POINT
# 添加到fstab
UUID=$(blkid -s UUID -o value ${DISK}1)
echo "UUID=$UUID $MOUNT_POINT ext4 defaults 0 2" >> /etc/fstab
echo "$DISK 初始化完成 -> $MOUNT_POINT"
done
echo "所有磁盘初始化完成!"
Windows环境脚本 (PowerShell)
初始化新磁盘脚本
# 初始化磁盘脚本
Param(
[Parameter(Mandatory=$false)]
[int[]]$DiskNumbers = $null
)
# 获取所有未初始化的磁盘
$disks = Get-Disk | Where-Object { $_.PartitionStyle -eq 'RAW' }
if ($DiskNumbers) {
$disks = $disks | Where-Object { $_.Number -in $DiskNumbers }
}
if (-not $disks) {
Write-Host "未找到未初始化的磁盘" -ForegroundColor Yellow
exit
}
foreach ($disk in $disks) {
Write-Host "处理磁盘 $($disk.Number)..." -ForegroundColor Green
try {
# 初始化磁盘为GPT
Initialize-Disk -Number $disk.Number -PartitionStyle GPT -Confirm:$false
# 创建分区并分配所有空间
$partition = New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter
# 格式化为NTFS
Format-Volume -DriveLetter $partition.DriveLetter -FileSystem NTFS -NewFileSystemLabel "Data_$($disk.Number)" -Confirm:$false
Write-Host "磁盘 $($disk.Number) 初始化完成,分配盘符: $($partition.DriveLetter):" -ForegroundColor Green
}
catch {
Write-Host "磁盘 $($disk.Number) 初始化失败: $_" -ForegroundColor Red
}
}
Write-Host "所有磁盘处理完成!" -ForegroundColor Green
自动发现并初始化脚本
# 自动发现并初始化所有新磁盘
Write-Host "正在扫描新磁盘..." -ForegroundColor Cyan
# 获取未初始化磁盘
$newDisks = Get-Disk | Where-Object {
$_.PartitionStyle -eq 'RAW' -and $_.OperationalStatus -eq 'Online'
}
if ($newDisks.Count -eq 0) {
Write-Host "未发现新磁盘" -ForegroundColor Yellow
exit
}
Write-Host "发现 $($newDisks.Count) 个新磁盘:" -ForegroundColor Green
foreach ($disk in $newDisks) {
Write-Host " 磁盘 $($disk.Number): $($disk.FriendlyName) - $([math]::Round($disk.Size/1GB, 2)) GB"
}
# 确认初始化
$confirm = Read-Host "是否初始化所有新磁盘? (Y/N)"
if ($confirm -ne 'Y' -and $confirm -ne 'y') {
Write-Host "操作已取消" -ForegroundColor Yellow
exit
}
# 执行初始化
foreach ($disk in $newDisks) {
Write-Host "初始化磁盘 $($disk.Number)..." -ForegroundColor Yellow
try {
Initialize-Disk -Number $disk.Number -PartitionStyle GPT -Confirm:$false
$partition = New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter
Format-Volume -DriveLetter $partition.DriveLetter -FileSystem NTFS -NewFileSystemLabel "Data" -Confirm:$false
Write-Host " 磁盘 $($disk.Number) -> 盘符 $($partition.DriveLetter):" -ForegroundColor Green
}
catch {
Write-Host " 磁盘 $($disk.Number) 初始化失败: $_" -ForegroundColor Red
}
}
Write-Host "初始化完成!" -ForegroundColor Green
高级功能脚本
带参数和错误处理的Linux脚本
#!/bin/bash
# 高级磁盘初始化脚本
usage() {
echo "用法: $0 [-d 设备] [-f 文件系统] [-m 挂载点]"
echo " -d 磁盘设备 (如 /dev/sdb)"
echo " -f 文件系统 (ext4, xfs, btrfs) 默认: ext4"
echo " -m 挂载点 (如 /data) 默认: /mnt/data"
echo " -l 标签名称"
echo " -h 显示帮助"
exit 1
}
# 默认值
FILESYSTEM="ext4"
MOUNT_POINT="/mnt/data"
LABEL=""
# 解析参数
while getopts "d:f:m:l:h" opt; do
case $opt in
d) DISK="$OPTARG" ;;
f) FILESYSTEM="$OPTARG" ;;
m) MOUNT_POINT="$OPTARG" ;;
l) LABEL="$OPTARG" ;;
h) usage ;;
*) usage ;;
esac
done
# 验证参数
if [ -z "$DISK" ]; then
echo "错误: 必须指定磁盘设备"
usage
fi
if [ ! -b "$DISK" ]; then
echo "错误: $DISK 不是有效的块设备"
exit 1
fi
# 检查磁盘是否已挂载
if mount | grep -q "$DISK"; then
echo "错误: $DISK 已挂载,请先卸载"
exit 1
fi
# 执行初始化
echo "正在初始化 $DISK..."
# 创建分区
parted -s $DISK mklabel gpt
parted -s $DISK mkpart primary 0% 100%
# 格式化
PARTITION="${DISK}1"
case $FILESYSTEM in
ext4)
mkfs.ext4 -F $PARTITION ${LABEL:+-L $LABEL}
;;
xfs)
mkfs.xfs -f $PARTITION ${LABEL:+-L $LABEL}
;;
btrfs)
mkfs.btrfs -f $PARTITION ${LABEL:+-L $LABEL}
;;
*)
echo "不支持的文件系统: $FILESYSTEM"
exit 1
;;
esac
# 挂载
mkdir -p $MOUNT_POINT
mount $PARTITION $MOUNT_POINT
# 获取UUID并添加到fstab
UUID=$(blkid -s UUID -o value $PARTITION)
if [ -n "$UUID" ]; then
echo "UUID=$UUID $MOUNT_POINT $FILESYSTEM defaults 0 2" >> /etc/fstab
echo "已添加到 /etc/fstab"
fi
echo "磁盘初始化成功!"
df -h | grep $MOUNT_POINT
Windows Server批量初始化脚本
# Server批量初始化脚本
param(
[string]$FileSystem = "NTFS",
[string]$LabelPrefix = "Data"
)
$logFile = "disk_init_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"
function Write-Log {
param([string]$Message)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
"$timestamp - $Message" | Out-File -FilePath $logFile -Append
Write-Host "$timestamp - $Message"
}
Write-Log "开始磁盘初始化脚本"
# 获取所有未初始化磁盘
$uninitializedDisks = Get-Disk | Where-Object { $_.PartitionStyle -eq 'RAW' }
if ($uninitializedDisks.Count -eq 0) {
Write-Log "未发现未初始化的磁盘"
exit
}
Write-Log "发现 $($uninitializedDisks.Count) 个未初始化磁盘"
foreach ($disk in $uninitializedDisks) {
Write-Log "处理磁盘 $($disk.Number) ($($disk.FriendlyName))"
try {
# 初始化
Initialize-Disk -Number $disk.Number -PartitionStyle GPT -Confirm:$false
Write-Log " 初始化完成"
# 创建分区
$partition = New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter
Write-Log " 创建分区完成,盘符: $($partition.DriveLetter)"
# 格式化
$volume = Format-Volume -DriveLetter $partition.DriveLetter -FileSystem $FileSystem -NewFileSystemLabel "${LabelPrefix}_$($disk.Number)" -Confirm:$false
Write-Log " 格式化完成: ${LabelPrefix}_$($disk.Number)"
}
catch {
Write-Log " 错误: $_"
}
}
Write-Log "所有磁盘初始化完成!"
使用说明
Linux脚本使用:
# 给予执行权限 chmod +x init_disk.sh # 运行基础脚本 sudo ./init_disk.sh # 运行高级脚本 sudo ./advanced_init.sh -d /dev/sdb -f xfs -m /data -l mydisk
Windows脚本使用:
# 以管理员身份运行PowerShell # 运行基础脚本 .\init_disk.ps1 # 指定磁盘号 .\init_disk.ps1 -DiskNumbers 1,2,3 # 自动发现脚本 .\auto_init.ps1
安全注意事项
- 数据备份:这些脚本会清空磁盘上所有数据
- 确认磁盘:确保选择了正确的磁盘设备
- 测试环境:先在测试环境验证脚本
- 权限要求:需要root/管理员权限
- 生产环境:建议添加双重确认机制
这些脚本提供了自动初始化的基础框架,可以根据实际需求进行调整和扩展。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播