Как предотвратить изменения /sda /sdb между загрузками?

Этот ответ от Alex B из Stack Overflow поможет вам переименовать как файлы, так и подпапки в каталоге.

Он заключается в использовании команд Linux find и rename . Я бы только добавил, что команда, указанная в приведенной выше ссылке, также изменит имена каталогов. Если вы хотите изменить только имена файлов, вам нужно изменить параметр -depth на следующий: -type f .

Еще одно регулярное выражение, данное команде rename , может быть приведенным ниже, и я думаю, что его легче понять.

 find my_root_dir -type f -execdir rename 'y/A-Z/a-z/' {} \;

Имейте в виду, что между регулярным выражением команды переименовать и фигурными скобками есть необходимый пробел, а между ними и символом завершения команды \;

Также помните, что он переименует каждый файл не только в каталоге, из которого вы выполняете команду (каталог my_root_dir ), но также и во все файлы в каждой подпапке, содержащейся в этом. Вы можете использовать опцию -maxdepth 0 с командой find , чтобы заставить ее применять тесты и действия только к самим начальным точкам.

3
25.09.2016, 20:03
3 ответа

Большинство файловых систем имеют уникальные UUID и метки, для которых вы можете установить различные значения . Они позволяют вам обращаться к тому, содержащему файловую систему, через / dev / disk / by-uuid или / dev / disk / by-label . Другие типы томов (RAID, LVM и т. Д.) Также обычно имеют название. Тома RAID и LVM собираются на основе уникальных идентификаторов физических томов, независимо от того, как этот том подключен. Так что обращаться к диску как таковому - это необычно.

Если вам действительно нужен доступ к диску в зависимости от способа его подключения, вы можете использовать / dev / disk / by-id . Записи имеют вид ШИНА - СЕРИЙНЫЙ или ШИНА - ИМЯ - СЕРИЙНЫЙ . Все подкаталоги / dev / disk / поддерживаются udev , кстати, в частности, правилами постоянного хранения .

Другое решение - создать собственные символические ссылки в папке / dev . Для этого вы можете написать правила udev. Добавьте файл /etc/udev/rules.d/50-local-persistent-disks.rules , содержащий правила вроде

SUBSYSTEM=="block", ATTRS{model}=="Yoyodine HD9001", \
  ATTRS{serial}=="123-456-789", \
  SYMLINK+="myfancyname"

Запустите udevadm info -a / dev / sda , чтобы увидеть какие … ==… шаблоны вы можете использовать. Если вы используете несколько шаблонов, они должны быть из одного выходного блока, вы не можете смешивать шаблоны с разных родительских устройств.

4
27.01.2020, 21:18

Я думаю, вы можете безопасно использовать ссылки /dev/disk/by -id/, которые привязаны только к типу/модели диска:

lrwxrwxrwx 1 root root   9 Jul 14 15:13 ata-Hitachi_HDS123456789_PVC1234567890 ->../../sda

Маловероятно, что путь /dev/disk/by -может совпасть с контроллером:

lrwxrwxrwx 1 root root   9 Jul 14 15:13 pci-0000:00:1f.2-ata-2 ->../../sda
lrwxrwxrwx 1 root root  10 Jul 14 15:13 pci-0000:00:1f.2-ata-2-part1 ->../../sda1
lrwxrwxrwx 1 root root  11 Jul 14 15:40 pci-0000:00:1f.2-ata-2-part10 ->../../sda10
lrwxrwxrwx 1 root root  11 Jul 14 15:43 pci-0000:00:1f.2-ata-2-part11 ->../../sda11
lrwxrwxrwx 1 root root  11 Jul 14 15:13 pci-0000:00:1f.2-ata-2-part12 ->../../sda12
1
27.01.2020, 21:18

В моем случае я исправил это, смонтировав /dev/sdb (дополнительный жесткий диск )в моем домашнем каталоге (пример :-/home/username/Data ). Но если я монтирую /dev/sdb внутри /mnt, он меняет местами sda и sdb каждый раз, когда я перезагружаю компьютер.

0
30.04.2021, 06:37

Теги

Похожие вопросы