Что такое UUID ядра? Почему они должны быть сумасшедшим дерьмом?

Что такое UUID ядра? Почему они должны быть сумасшедшим дерьмом?

Я смотрелDebConf 14: QA с Линусом Торвальдсом, а примерно в 19:50 Linux упоминает, что «UUID — это безумное дерьмо».

Для чего используются UUID (на уровне ядра)? Что Линус имеет в виду?

решение1

Файловым системам при форматировании присваивается случайный номер для их уникальной идентификации. Раньше вам приходилось настраивать загрузчик и /etc/fstab, чтобы определить, какие файловые системы должны быть смонтированы, используя узел dev, который состоит из произвольно назначенного идентификатора, например /dev/sda, и номера раздела. Проблема заключалась в том, что если номера разделов менялись, все существующие ссылки ломались. Однако действительно большая проблема возникла, когда произвольные идентификаторы самих дисков начали меняться довольно часто. С дисками IDE их могло быть только 4, и поэтому в зависимости от того, к какому физическому порту был подключен диск, это определяло, был ли это /dev/hda или /dev/hdb. Однако с дисками SCSI, или дисками SATA, или системами с несколькими контроллерами дисков идентификатор просто назначается в том порядке, в котором они определяются, и этот порядок несколько случаен и может меняться от одной загрузки к другой, даже если вы не делаете что-то вроде (от)подключения USB-диска. По мере того как такие системы становились популярными, стало важно не полагаться на имена узлов разработки, и поэтому системы перешли на использование UUID для определения того, какая файловая система должна быть смонтирована и где, а какой именно узел разработки будет отображаться при данной загрузке, не имеет значения.

Связанный контент