如何检查驱动器';Debian Linux中的存在

如何检查驱动器';Debian Linux中的存在,linux,bash,sata,Linux,Bash,Sata,我有一个DebianLinux服务器,它连接了两个eSATA驱动器(NTFS,bleh)。它们当前安装良好,并具有正确的fstab条目设置(使用UUID,而不是/dev位置) 我得出的结论是,我需要添加'noauto'装载选项,以便在服务器启动时不会装载它们(以防止服务器在它们不存在时挂起。我确实计划偶尔带它们游览一下) 但是,我应该如何设置init脚本,以便在系统启动后装载它们?我可以执行mount/mount/location,但我更愿意在执行之前检查它们是否存在(以防止抛出错误)。另外,我

我有一个DebianLinux服务器,它连接了两个eSATA驱动器(NTFS,bleh)。它们当前安装良好,并具有正确的fstab条目设置(使用UUID,而不是/dev位置)

我得出的结论是,我需要添加'noauto'装载选项,以便在服务器启动时不会装载它们(以防止服务器在它们不存在时挂起。我确实计划偶尔带它们游览一下)


但是,我应该如何设置init脚本,以便在系统启动后装载它们?我可以执行
mount/mount/location
,但我更愿意在执行之前检查它们是否存在(以防止抛出错误)。另外,我是否只需要将这个脚本放到
/etc/init.d/
目录中就可以工作?(我是Debian的新手)

blkid
显示块设备列表。

blkid
显示块设备列表。

<。AutoFS和Udev是研究解决我这个问题的合适工具

此外,即使未安装块设备,
blkid
命令也会正确显示块设备列表。在此基础上,这里有一个(容易出错的)基本脚本,用于处理不依赖AutoFS和Udev的安装块设备(只是一个临时解决方案):

#/usr/bin/env-php

谢谢你提供的信息。AutoFS和Udev是研究解决我这个问题的合适工具

此外,即使未安装块设备,
blkid
命令也会正确显示块设备列表。在此基础上,这里有一个(容易出错的)基本脚本,用于处理不依赖AutoFS和Udev的安装块设备(只是一个临时解决方案):

#/usr/bin/env-php

看看AutoFS>>这个问题与堆栈溢出无关,它更多的是一个系统使用问题,而不是一个编程问题。该主题在和中有相当好的介绍。您正在寻找一种在检测到设备时执行操作的工具。首先;其他udev问题可能会引起兴趣。看看AutoFS>>这个问题与堆栈溢出无关,它更多的是一个系统使用问题,而不是一个编程问题。该主题在和中有相当好的介绍。您正在寻找一种在检测到设备时执行操作的工具。首先;其他udev问题可能会引起兴趣。
#!/usr/bin/env php
<?php
define('DRIVE1',    '7E088E5B088E11F7');
define('DRIVE2',    '4A841A75841A63AB');
$devices = `/sbin/blkid`;

if (strpos($devices, DRIVE1) !== FALSE) {
    $output = `mount /storage/drive1`;
    $output = trim($output);
    echo "Mounting /storage/drive1... $output\n";
} else {
    echo "Not Mounting: /storage/drive1\n";
}
if (strpos($devices, DRIVE2) !== FALSE) {
    $output = `mount /storage/drive2`;
    $output = trim($output);
    echo "Mounting /storage/drive2... $output\n";
} else {
    echo "Not Mounting: /storage/drive2\n";
}