Как я могу назначить SDC / SDD для моих USB-дисков

У меня странная проблема. Не могу найти никакого решения.

Использование Ubuntu 12.04. Мой жесткий диск назначен как sda. Если я подключаю любой USB-накопитель, он автоматически назначается как sdb. Это хорошо.

Но после перезагрузки USB-накопители, назначенные как sda, и жесткий диск отображаются как sdb. Так что моя точка монтирования fstab показывает ошибку при запуске.

Я хотел бы сделать любой USB-накопитель, идущий после жесткого диска - как обычно было в Windows.

Пожалуйста, кто-нибудь, помогите мне. Я борюсь на этом этапе.

Заранее благодарю.

Райхан

3
задан 2 October 2012 в 22:09

1 ответ

Я собираюсь предложить вам сделать две вещи,

  1. Используйте UUID с вместо /dev/sd* в вашем fstab, чтобы он не перепутался.
  2. Начните с udev, чтобы ваши флэшки выглядели как /dev/whatever

Раздел 1.

Убедитесь, что все устройства, перечисленные в вашем fstab, подключены к системе. Подождите несколько секунд, а затем напечатайте

ls -l /dev/disk/by-uuid

. Это даст вам что-то похожее на следующее: всего 0

lrwxrwxrwx 1 root root 10 Sep 24 20:19 4e36d61c-e6f4-4a1a-b760-45ee5a76e141 -> ../../sdc2
lrwxrwxrwx 1 root root 10 Sep 24 20:19 52a04f5d-2576-48d1-8340-544cc24e0fcd -> ../../sdc3
lrwxrwxrwx 1 root root 10 Sep 24 20:19 55a1d85d-e5f5-416e-adf7-3aed3e6309f1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Sep 24 20:19 5c8c3b19-5550-4411-8fc3-692aa94bb4af -> ../../dm-1
lrwxrwxrwx 1 root root 10 Sep 24 20:19 8bfea793-5cb2-480c-a4e3-2b3c331463bb -> ../../sdb3
lrwxrwxrwx 1 root root 10 Sep 24 20:19 a369bc5e-3bf0-454b-b04d-2936e343e959 -> ../../dm-0
lrwxrwxrwx 1 root root 10 Sep 24 20:19 e57e2838-2c56-43c3-b4b8-de0743c67181 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Sep 24 20:19 f7772f0f-19d7-4ced-b0a0-b543e4bd54fe -> ../../dm-2

Теперь посмотрите, что у вас есть в fstab. Везде, где у вас есть что-то вроде /dev/sdc1, я хочу, чтобы вы заменили это чем-то вроде UUID=55a1d85d-e5f5-416e-adf7-3aed3e6309f1. Что он будет делать, это скажет mount использовать UUID для идентификации устройства вместо его местоположения в /dev. Эти UUID являются уникальными и служат для жизни файловой системы.

Раздел 2.

udev - это служба, которая отвечает за размещение блочных устройств (и других устройств) в /dev в Ubuntu. На самом деле вы можете написать свои собственные правила для udev, которые предписывают ему создавать символические ссылки в соответствии с /dev согласованным образом. Принцип работы udev заключается в том, что каждый раз, когда устройство подключено, оно сканирует длинный список правил и выполняет действия, указанные в любом соответствующем устройстве. Сопоставление выполняется путем проверки набора параметров устройства, таких как UUID, порт, к которому оно подключено, адрес PCI и т. Д. Таким образом, вы можете идентифицировать ваш флэш-накопитель по файловой системе UUID и иметь правило для сопоставления. что для /dev/myThumbDrive и использовать /dev/myThumbDrive везде, где вы обычно используете /dev/sda1 (например).

Вы можете найти список атрибутов для идентификации вашего диска, набрав

udevadm info -n /dev/sde --attribute-walk

looking at device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0/6:0:0:0/block/sde/sde1':
  KERNEL=="sde1"
  SUBSYSTEM=="block"
  DRIVER==""
  ATTR{partition}=="1"
  ATTR{start}=="1"
  ATTR{size}=="24242084"
  ATTR{ro}=="0"
  ...

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0/6:0:0:0/block/sde':
 KERNELS=="sde"
 SUBSYSTEMS=="block"
 DRIVERS==""
 ATTRS{range}=="16"
 ATTRS{ext_range}=="256"
 ATTRS{removable}=="1"
 ATTRS{ro}=="0"
 ATTRS{size}=="31250432"
 ATTRS{alignment_offset}=="0"
 ATTRS{discard_alignment}=="0"
 ATTRS{capability}=="51"
 ...

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0/6:0:0:0':
 KERNELS=="6:0:0:0"
 SUBSYSTEMS=="scsi"
 DRIVERS=="sd"
 ATTRS{device_blocked}=="0"
 ATTRS{type}=="0"
 ATTRS{scsi_level}=="3"
 ATTRS{vendor}=="SanDisk "
 ATTRS{model}=="Cruzer          "
 ATTRS{rev}=="1.00"
 ...

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0':
 ....

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6':
 ....

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0':
 ...
 SUBSYSTEMS=="usb"
 DRIVERS=="usb-storage"

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1':
 ....
 ATTRS{idVendor}=="0781"
 ATTRS{idProduct}=="5530"
 ....
 ATTRS{manufacturer}=="SanDisk"
 ATTRS{product}=="Cruzer"
 ATTRS{serial}=="20043513610A15E24E49" 

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8':
 ....

looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0':
 ....

looking at parent device '/devices/pci0000:00/0000:00:15.2':
 ....

looking at parent device '/devices/pci0000:00':
 ....

И затем вы можете создать правило, которое будет выглядеть примерно так:

KERNEL=="sd*", SUBSYSTEMS=="scsi", ATTRS{model}=="USB 2.0 Storage Device", SYMLINK+="myThumbDrive%n"

/dev/myThumbDrive1 можно использовать вместо /dev/sd[a-z]1

Альтернативный метод

Это слишком много печатания UUID на мой вкус. Может быть, вам будет легче.

http://scnr.net/blog/index.php/archives/132

0
ответ дан 2 October 2012 в 22:09

Другие вопросы по тегам:

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