背景:当前编译脚本会挂盘,在成功编译后才umount。如果编了一半手动终止,会导致我挂的盘越来越多。脚本能不能实现挂盘之前umount干净之后再挂盘
时间: 2024-03-20 22:43:33 浏览: 59
可以在编译脚本中加入挂载点的判断,在挂载前先判断该挂载点是否已经挂载,如果已经挂载,则先执行umount命令将其卸载,再进行挂载操作。可以使用类似以下的脚本代码:
```
#!/bin/bash
MOUNT_POINT="/mnt/mydisk" # 挂载点
# 判断是否已经挂载,如果是则先执行umount命令
if mountpoint -q "$MOUNT_POINT"; then
umount "$MOUNT_POINT"
fi
# 挂载磁盘
mount /dev/sdb1 "$MOUNT_POINT"
# 编译代码...
# 编译完成后,执行umount命令卸载磁盘
umount "$MOUNT_POINT"
```
这样,在执行脚本时,每次挂盘前都会进行一次卸载操作,确保挂载点干净无误。
相关问题
Linux中挂盘数据盘的脚本
在Linux系统中,挂载数据盘通常涉及几个步骤,包括查看当前分区情况、创建挂载点、格式化分区、挂载分区以及设置开机自动挂载。以下是一个简单的脚本示例,用于自动化挂载一个新分区到指定目录。
请注意,在实际使用中需要根据实际情况调整分区号、挂载点和文件系统类型。
```bash
#!/bin/bash
# 确保脚本以root权限运行
if [ "$(id -u)" != "0" ]; then
echo "该脚本必须以root权限运行" 1>&2
exit 1
fi
# 检测磁盘设备名称,这里以/dev/sdb为例
DISK_DEVICE="/dev/sdb"
# 指定挂载点,这里以/mnt/data为例
MOUNT_POINT="/mnt/data"
# 创建挂载点目录
mkdir -p $MOUNT_POINT
# 查看当前所有分区情况,确认新分区
lsblk
# 格式化新分区,这里以ext4文件系统为例
mkfs.ext4 $DISK_DEVICE1
# 挂载新分区到指定目录
mount $DISK_DEVICE $MOUNT_POINT
# 开机自动挂载,将下面这行添加到/etc/fstab
echo "$DISK_DEVICE $MOUNT_POINT ext4 defaults 0 2" >> /etc/fstab
echo "数据盘挂载完成!"
```
在运行这个脚本之前,你需要根据实际情况修改脚本中的`DISK_DEVICE`和`MOUNT_POINT`变量的值。同时,确保新分区是未挂载状态,并且已经存在`/dev/sdb1`这样的分区设备。
此外,如果你不熟悉Linux文件系统的操作,建议先手动执行这些步骤,理解每一步的作用后再编写自动化脚本。
linux 硬盘挂盘
### 如何在 Linux 中挂载硬盘
#### 准备工作
为了成功挂载硬盘,在开始之前需要确认几个事项。对于小于等于2TB的硬盘可以使用`fdisk`工具进行分区操作[^1];而对于超过2TB容量的硬盘,则应采用`parted`命令来创建GPT类型的分区表,这是因为传统的MBR分区模式下的确仅能处理最多2TB的空间。
#### 查看未挂载的磁盘设备
通过执行如下命令查看当前系统中存在的所有存储设备及其状态:
```bash
lsblk
```
此命令会列出所有的块设备信息,帮助识别新连接上的硬盘名称以及其是否已经被分配了文件系统。
#### 对于不超过2TB的新硬盘初始化
如果要准备一块新的不大于2TB的空白硬盘并将其加入到现有文件系统结构当中去,那么应该先对其进行分区:
```bash
sudo fdisk /dev/sdX # 将sdX替换为实际检测到的目标驱动器代号
```
按照提示完成新建主分区的过程之后退出程序保存更改即可。
#### 处理大于2TB的大容量硬盘
当面对的是一个超出传统限制范围之外的大尺寸介质时,推荐的做法是利用`parted`来进行更灵活的操作:
```bash
sudo parted /dev/sdY # 同样地把这里的sdY换成具体的物理地址表示符
(parted) mklabel gpt # 创建GUID分区表(GPT),这是大容量必备步骤
(parted) mkpart primary ext4 0% 100%
(parted) quit # 完成设置后离开交互界面
```
上述过程定义了一个全新的扩展属性兼容格式化区域覆盖整个可用空间,并指定了EXT4作为默认文件系统的类型。
#### 格式化分区
无论是哪种情况都需进一步指定所期望的数据组织方式即所谓的“文件系统”。假设选择了ext4为例说明具体做法:
```bash
sudo mkfs.ext4 /dev/sdZn # sdZ代表目标磁盘,n则是刚刚建立的那个逻辑卷编号
```
这一步骤实际上就是给定了一套规则让计算机知道怎样读写这块特定区域内储存的信息。
#### 实现自动加载配置
为了让每次开机都能自动关联对应的路径位置而不必手动重复相同的工作流程,编辑/etc/fstab文件添加一行记录描述映射关系显得尤为重要:
打开终端输入以下指令开启文本编辑功能:
```bash
sudo nano /etc/fstab
```
随后追加类似这样的条目进去(注意修改uuid和mount_point字段以匹配实际情况):
```
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/mydisk ext4 defaults 0 2
```
其中`/mnt/mydisk`是要绑定的具体目录名,可自由设定但建议提前做好相应层级构建动作以免报错。
最后记得重启服务使改动生效:
```bash
sudo mount -a
```
这样就完成了Linux环境下硬盘的有效接入与管理任务。
阅读全文