确认当前支持的文件系统
modinfo ext4
可以替换为ntfs
ext4
fat32
...
首先,插入 U 盘并确保设备已正确识别它。可以使用命令
sudo fdisk -l
来检查是否有新设备连接。
然后,创建一个目录以挂载 U 盘。可以使用以下命令来创建:
sudo mkdir /home/usbfile
接下来,使用以下命令来查看可用的设备名称和分区:
sudo fdisk -l
找到 U 盘,并确定它的设备名称和分区名称。例如,如果 U 盘是 /dev/sda1,那么它的设备名称为 /dev/sda,分区名称为 /dev/sda1。
现在,使用以下命令将 U 盘挂载到创建的目录中:
sudo mount /dev/sda1 /home/usbfile
注意,需要将命令中的 /dev/sda1 替换为 U 盘分区名称,将 /home/usbfile 替换为要挂载 U 盘的目录。
挂载完成后,可以使用以下命令检查 U 盘是否已正确挂载:
df -h
此命令将显示已挂载的文件系统及其使用情况。如果在列表中看到了 U 盘,那么它已经成功挂载了。
在使用完 U 盘后,可以使用以下命令将其卸载:
sudo umount /home/usbfile
注意,需要将 /home/usbfile 替换为要卸载的目录。
开启自启挂载硬盘
首先编写脚本如mount_usb_and_start_docker.sh
写入下面代码,可选删除docker相关内容
#!/bin/bash
# 获取当前日期和时间
current_datetime=$(date +"%Y-%m-%d %H:%M:%S")
# U盘设备路径
usb_device="/dev/sda1"
# U盘挂载点
mount_point="/home/usbfile"
# 检查U盘是否已经挂载
if grep -qs "$usb_device" /proc/mounts; then
echo "$current_datetime - U盘已经挂载"
else
# 如果U盘未挂载,则尝试挂载
echo "$current_datetime - 挂载U盘..."
mount "$usb_device" "$mount_point"
# 检查挂载是否成功
if [ $? -eq 0 ]; then
echo "$current_datetime - U盘挂载成功"
sleep 10
else
echo "$current_datetime - 无法挂载U盘"
exit 1
fi
fi
# 在检查 Docker 服务之前等待 30 秒
echo "$current_datetime - 等待 30 秒检测docker服务..."
sleep 30
# 检查Docker服务是否已经启动
if systemctl is-active --quiet docker; then
echo "$current_datetime - Docker服务已经启动"
else
# 启动Docker服务
echo "$current_datetime - 启动Docker服务..."
systemctl start docker
# 再次检查Docker服务是否成功启动
if systemctl is-active --quiet docker; then
echo "$current_datetime - Docker服务已成功启动"
else
echo "$current_datetime - 无法启动Docker服务"
exit 1
fi
fi
# 脚本执行完毕
echo "$current_datetime - 脚本执行完成"
exit 0
然后在/usr/lib/systemd/system目录下创建systemctl脚本
[Unit]
Description=mount_usb_and_start_docker
After=network.target
[Service]
ExecStart=/bin/sh /home/auto_scripts/mount_usb_and_start_docker.sh
StandardOutput=append:/home/auto_scripts/mount_usb_and_start_docker_Output.log
StandardError=append:/home/auto_scripts/mount_usb_and_start_docker_Error.log
Restart=no
[Install]
WantedBy=multi-user.target
有关命令的使用可以阅读本文使用systemctl命令轻松配置和管理系统服务,重启测试。
如果出现$'\r': command not found
错误属于复制粘贴换行格式化问题,使用 sed 命令来删除回车符:
sed -i 's/\r//' /home/auto_scripts/mount_usb_and_start_docker.sh
这会删除文件中的所有回车符(\r),将其转换为 Unix 格式的换行符。
Comments | NOTHING