【问题标题】:How to check for a drive's existence in Debian Linux如何在 Debian Linux 中检查驱动器是否存在
【发布时间】:2011-06-06 22:46:29
【问题描述】:

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

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

但是,一旦系统启动,我应该如何设置初始化脚本来挂载它们?我可以做一个mount /mount/location,但我更愿意在做之前检查它们的存在(以防止抛出错误)。另外,我是否只需将此脚本放入/etc/init.d/ 目录即可使其工作? (我是 Debian 的新手)

【问题讨论】:

标签: linux bash sata


【解决方案1】:

blkid 显示块设备列表。

【讨论】:

    【解决方案2】:

    感谢您的信息。 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";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2017-09-09
      相关资源
      最近更新 更多