2011-06-06 60 views
1

我有一臺連接有兩個eSATA驅動器的Debian Linux服務器(NTFS,bleh)。他們目前安裝得很好,並有適當的fstab條目設置(使用UUID,而不是/ dev位置)。如何在Debian Linux中檢查驅動器的存在

我得出結論,我需要添加'noauto'掛載選項,以便在服務器啓動時不掛載它們(以防止服務器掛起時不存在。帶他們偶爾遊覽)。

但是,我應該如何設置一個init腳本來掛載它們,一旦系統啓動?我可以做一個mount /mount/location,但我寧願在做之前檢查它們的存在(以防止拋出錯誤)。另外,我是否需要將此腳本放入/etc/init.d/目錄中以使其工作? (我對Debian來說相當新)

+0

看一看的AutoFS >> HTTP:// wiki.debian.org/AutoFs – 2011-06-06 22:54:29

+0

這個問題是關於Stack Overflow的話題,它不僅僅是一個系統使用問題,而是一個編程問題。這個主題在[Super User](http://superuser.com/)和[Unix Stack Exchange](http://unix.stackexchange.com/)中有相當好的介紹。您正在尋找[Udev](http://en.wikipedia.org/wiki/Udev),這是一種在檢測到設備時執行操作的工具。從[自動化順序安裝命令]開始(http://unix.stackexchange.com/questions/11807);其他udev問題可能是有趣的。 – Gilles 2011-06-06 23:31:23

回答

1

blkid顯示了塊設備的列表。

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"; 
} 
相關問題