挂载和卸载USB设备:Linux中的文件系统操作指南


确认当前支持的文件系统

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 格式的换行符。

声明:吃蛋的小子 | 版权所有,违者必究 | 如未注明,均为原创 | 本作品已获得 CC BY-SA 4.0 许可

转载:转载请注明原文链接 - 挂载和卸载USB设备:Linux中的文件系统操作指南