#linux #bash #sata
#linux #bash #sata
Вопрос:
У меня есть сервер Debian Linux с двумя подключенными к нему дисками eSATA (NTFS, bleh). В настоящее время они смонтированы нормально и имеют правильную настройку записей fstab (с использованием UUID, а не расположения / dev).
Я пришел к выводу, что мне нужно добавить параметры монтирования ‘noauto’, чтобы они не монтировались при загрузке сервера (чтобы сервер не зависал, когда их нет. Я планирую время от времени брать их с собой на экскурсию).
Однако, как мне настроить скрипт инициализации для их монтирования после загрузки системы? Я мог бы сделать mount /mount/location
, но я бы предпочел проверить их существование перед этим (чтобы предотвратить выдачу ошибки). Кроме того, нужно ли мне просто поместить этот скрипт в /etc/init.d/
каталог, чтобы он заработал? (Я довольно новичок в Debian)
Комментарии:
1. Взгляните на AUTOFFS >> wiki.debian.org/AutoFs
2. Этот вопрос не по теме Stack Overflow, это скорее вопрос использования системы, чем вопрос программирования. Тема довольно хорошо освещена в Super User и Unix Stack Exchange . Вы ищете Udev , инструмент для выполнения действия при обнаружении устройства. Начните с автоматизации последовательности команд монтирования ; могут представлять интерес другие вопросы udev.
Ответ №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... $outputn";
} else {
echo "Not Mounting: /storage/drive1n";
}
if (strpos($devices, DRIVE2) !== FALSE) {
$output = `mount /storage/drive2`;
$output = trim($output);
echo "Mounting /storage/drive2... $outputn";
} else {
echo "Not Mounting: /storage/drive2n";
}