Compare commits
1 Commits
b401387ad9
...
efae786eed
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efae786eed |
78
bushujb.sh
78
bushujb.sh
@@ -301,9 +301,48 @@ mirrors:
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# NVMe 初始化
|
# NVMe 分区与格式化
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|
||||||
|
# 检查磁盘是否存在
|
||||||
|
if [[ ! -b /dev/nvme0n1 ]]; then
|
||||||
|
echo "错误:/dev/nvme0n1 不存在"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 如果分区不存在,则创建
|
||||||
|
if [[ ! -b /dev/nvme0n1p1 ]]; then
|
||||||
|
echo "/dev/nvme0n1p1 不存在,开始创建分区..."
|
||||||
|
|
||||||
|
if lsblk -nr /dev/nvme0n1 | awk '{print $6}' | grep -q '^part$'; then
|
||||||
|
echo "检测到已有分区,但没有 nvme0n1p1,请手动检查"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
parted -s /dev/nvme0n1 mklabel gpt
|
||||||
|
parted -s /dev/nvme0n1 mkpart primary 0% 100%
|
||||||
|
|
||||||
|
partprobe /dev/nvme0n1
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
if [[ ! -b /dev/nvme0n1p1 ]]; then
|
||||||
|
echo "错误:分区创建失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "分区创建成功:/dev/nvme0n1p1"
|
||||||
|
else
|
||||||
|
echo "/dev/nvme0n1p1 已存在,跳过创建分区"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 如果没有文件系统,则格式化
|
||||||
|
if ! blkid /dev/nvme0n1p1 >/dev/null 2>&1; then
|
||||||
|
echo "/dev/nvme0n1p1 没有文件系统,开始格式化为 ext4..."
|
||||||
|
mkfs.ext4 -F /dev/nvme0n1p1
|
||||||
|
else
|
||||||
|
echo "/dev/nvme0n1p1 已有文件系统,跳过格式化"
|
||||||
|
fi
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# NVMe 挂载与绑定挂载
|
# NVMe 挂载与绑定挂载
|
||||||
# -----------------------
|
# -----------------------
|
||||||
@@ -319,6 +358,10 @@ else
|
|||||||
echo "/mnt/nvme 已经挂载,跳过挂载"
|
echo "/mnt/nvme 已经挂载,跳过挂载"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ✅ 确保源目录存在(关键修复点)
|
||||||
|
mkdir -p /mnt/nvme/rancher
|
||||||
|
mkdir -p /mnt/nvme/longhorn
|
||||||
|
|
||||||
# 确保绑定挂载目标目录存在
|
# 确保绑定挂载目标目录存在
|
||||||
mkdir -p /var/lib/rancher
|
mkdir -p /var/lib/rancher
|
||||||
mkdir -p /var/lib/longhorn
|
mkdir -p /var/lib/longhorn
|
||||||
@@ -339,24 +382,41 @@ else
|
|||||||
echo "/var/lib/longhorn 已经挂载,跳过绑定挂载"
|
echo "/var/lib/longhorn 已经挂载,跳过绑定挂载"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 更新 /etc/fstab,保证开机自动挂载
|
# -----------------------
|
||||||
|
# 更新 /etc/fstab
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
NVME_UUID=$(blkid -s UUID -o value /dev/nvme0n1p1)
|
NVME_UUID=$(blkid -s UUID -o value /dev/nvme0n1p1)
|
||||||
|
NVME_FSTYPE=$(blkid -s TYPE -o value /dev/nvme0n1p1)
|
||||||
|
|
||||||
|
if [[ -z "$NVME_UUID" || -z "$NVME_FSTYPE" ]]; then
|
||||||
|
echo "错误:无法获取 UUID 或文件系统类型,停止写入 fstab"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 主挂载(安全)
|
||||||
grep -qE "[[:space:]]/mnt/nvme[[:space:]]" /etc/fstab || \
|
grep -qE "[[:space:]]/mnt/nvme[[:space:]]" /etc/fstab || \
|
||||||
echo "UUID=${NVME_UUID} /mnt/nvme ext4 defaults,nofail 0 2" >> /etc/fstab
|
echo "UUID=${NVME_UUID} /mnt/nvme ${NVME_FSTYPE} defaults,nofail,x-systemd.device-timeout=5 0 2" >> /etc/fstab
|
||||||
|
|
||||||
grep -qE "^/mnt/nvme/rancher[[:space:]]+/var/lib/rancher[[:space:]]+none[[:space:]]+bind" /etc/fstab || \
|
# bind mount(安全)
|
||||||
echo "/mnt/nvme/rancher /var/lib/rancher none bind 0 0" >> /etc/fstab
|
grep -qE "[[:space:]]/var/lib/rancher[[:space:]]" /etc/fstab || \
|
||||||
|
echo "/mnt/nvme/rancher /var/lib/rancher none bind,nofail,x-systemd.requires-mounts-for=/mnt/nvme 0 0" >> /etc/fstab
|
||||||
|
|
||||||
grep -qE "^/mnt/nvme/longhorn[[:space:]]+/var/lib/longhorn[[:space:]]+none[[:space:]]+bind" /etc/fstab || \
|
grep -qE "[[:space:]]/var/lib/longhorn[[:space:]]" /etc/fstab || \
|
||||||
echo "/mnt/nvme/longhorn /var/lib/longhorn none bind 0 0" >> /etc/fstab
|
echo "/mnt/nvme/longhorn /var/lib/longhorn none bind,nofail,x-systemd.requires-mounts-for=/mnt/nvme 0 0" >> /etc/fstab
|
||||||
|
|
||||||
# 显示挂载状态
|
# -----------------------
|
||||||
|
# 验证
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
echo "测试 fstab..."
|
||||||
|
mount -a
|
||||||
|
|
||||||
|
echo "显示挂载状态"
|
||||||
findmnt /mnt/nvme
|
findmnt /mnt/nvme
|
||||||
findmnt /var/lib/rancher
|
findmnt /var/lib/rancher
|
||||||
findmnt /var/lib/longhorn
|
findmnt /var/lib/longhorn
|
||||||
|
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# 时间同步
|
# 时间同步
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user