如何在Debian Linux中检查驱动器是否存在

时间:2011-06-06 22:46:30

标签: linux bash sata

我有一个Debian Linux服务器,附带两个eSATA驱动器(NTFS,bleh)。它们当前安装正常并且设置了正确的fstab条目(使用UUID,而不是/ dev位置)。

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

但是,在系统启动后,我应该如何设置init脚本来安装它们?我可以做mount /mount/location,但我更愿意在做之前检查它们的存在(以防止抛出错误)。另外,我是否只需要将此脚本放入/etc/init.d/目录中以使其正常工作? (我对Debian很新)

2 个答案:

答案 0 :(得分:1)

blkid显示了一个块设备列表。

答案 1 :(得分:0)

感谢您提供的信息。 AutoFS和Udev是研究解决我的这个问题的正确方法。

此外,blkid命令可以正确显示块设备列表,即使它们未安装。对此进行推断,这是一个(容易出错的)基本脚本,用于处理不依赖于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";
}