У меня Raspberry Pi под управлением Raspbian Jessie Lite (безголовая версия), и я некоторое время использую его как дамп файла и git-сервер. Я подключил к нему внешний жесткий диск USB, чтобы использовать его, но, похоже, с ним возникли некоторые проблемы.

По-видимому, без всякой причины система переименовывает мой диск из /dev/sda1 в /dev/sdb1 в /dev/sdc1 и так далее каждые несколько дней. Это приводит к тому, что серверам git и SFTP не удается найти файлы в каталоге, к которому этот диск должен быть подключен.

После запуска fdisk -l я вижу, что диск был переименован.

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdb1  *     2048 3907029166 3907027119  1.8T  7 HPFS/NTFS/exFAT

Однако, у df все еще есть старое имя диска.

Filesystem      1K-blocks    Used  Available Use% Mounted on
/dev/sda1      1831250820   10976 1733547784   1% /media/USBHDD1

При попытке доступа к /media/USBHDD1 после этого изменения:

# ls /media/USBHDD1/
ls: reading directory /media/USBHDD1/: Input/output error

Я изменил /etc/fstab чтобы использовать UUID диска, поэтому запуск mount -a временно решает проблему, и Pi больше не входит в панику ядра при загрузке. Это, однако, раздражает. Работа останавливается, пока я не могу подключиться к SSH и исправлять его каждые несколько дней, и это стало неприемлемым.

Что может вызвать переименование, и как я могу либо остановить его, либо заставить df запомнить UUID, а не этот ярлык?

1 ответ1

1

Возможно, ваша проблема связана с энергосбережением: диск вращается сам по себе, ресурс становится недоступным, когда диск появляется снова, ему назначается другое имя устройства (sdb), и ресурс не работает.

Есть два различных способа борьбы с этим, вы можете попробовать их по очереди:

  1. Возьмите под контроль энергосбережение с помощью hdparm: из очень полезной вики Arch Linux вы проверяете текущие значения параметров энергосбережения с помощью

    hdparm -B /dev/sda
    hdparm -S /dev/sda
    

    где

    -B Установить функцию расширенного управления питанием. Возможные значения находятся в диапазоне от 1 до 255, низкие значения означают более агрессивное управление питанием, а более высокие значения означают лучшую производительность. Значения от 1 до 127 допускают замедление, а значения от 128 до 254 - нет. Значение 255 полностью отключает эту функцию.

    -S Установить время ожидания (spindown) для накопителя. Тайм-аут указывает, как долго ждать в режиме ожидания (без активности диска) перед выключением двигателя для экономии энергии. Значение 0 отключает вращение, значения от 1 до 240 указывают кратные 5 секунд, а значения от 241 до 251 указывают кратные 30 минут.

    Затем вы указываете, если это необходимо

    hdparm -B 255 /dev/sda
    hdparm -S 0   /dev/sda
    

    и посмотрим, возникнет ли та же проблема.

  2. Вторая возможность - написать правило udev чтобы заставить udev всегда назначать одну и ту же букву вашему диску: добавьте следующее правило в файл /etc/udev/rules.d/10-local.rules (если у вас нет файл, создай его)

    ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="sda"
    

    (Коды поставщиков и продуктов относятся к моей флешке USB, вам придется подставлять свои собственные значения, которые вы получаете с помощью lsusb).

    Затем вы можете проверить, что это работает с помощью

    udevadm info -a -p  $(udevadm info -q path -n /dev/sda)
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .