Устройства не имеют UUID. Разделы делают. UUID создаются, когда файловая система отформатирована. Поэтому они могут быть изменены, и почему они действительно изменяются, когда Вы переформатировали.
Другими словами, UUID не является характеристикой части аппаратных средств, и нет никакого способа "найти" информацию, которая не существует.
Может быть один или несколько разделов на устройстве, которые имеют UUID, поэтому если Вы видели тот, прежде чем связано с ним, это - UUID раздела. Если существует больше чем один раздел, может быть UUID для каждого (там, также не может, начиная ни с одного требуются), но ни один из них не характеристики аппаратных средств (они - просто изменяемые части данных, хранивших на нем). Флеш-карты обычно идут с одним большим предварительно отформатированным FAT32 или разделом NTFS. При переформатировании этого UUID изменится.
Для нахождения UUID раздела действительно необходимо найти его идентификационные данные как блочное устройство. cat /proc/partitions
должен перечислить все, о чем ядро знает, смонтированный или нет. Предположение там не является десятками дисков, присоединенных к Вашей системе, должно быть достаточно просто выяснить, каким является USB. /proc/partitions
на самом деле перечисляет диск также, можно сказать это кроме его разделов, потому что диск не будет иметь числа в конце (sda по сравнению с sda1), и file -s
вывод будет отличаться:
> file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 134217728 sectors;
partition 2: ID=0x83, starthead 202, startsector 134219776, 58720256 sectors;
partition 3: ID=0x83, starthead 245, startsector 192940032, 46137344 sectors;
partition 4: ID=0x82, starthead 223, startsector 239077376, 10992304 sectors, code offset 0x63
> file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=cd8e11b5-07ac-7741-ae0c-36e63eacf8a1, volume name "_Fedora-17-x86_6/" (needs journal recovery) (extents) (large files) (huge files)
Иногда предварительно отформатированные диски являются всего одним большим устройством, например:
> file -s /dev/sdb
/dev/sdb: x86 boot sector, Microsoft Windows XP Bootloader NTLDR, code offset 0x3c,
OEM-ID "MSDOS5.0", sectors/cluster 64, root entries 512,
Media descriptor 0xf8, sectors/FAT 246, heads 255, sectors 4026368 (volumes > 32 MB) , reserved 0x1, serial number 0xe06de56f,
unlabeled, FAT (16 bit)
Заметьте, что у этого на самом деле "не маркирован" и, кажется, нет UUID (они не обязательны).
на сцене, где у вас есть каталог Дерево, содержащее файл ... / etc / Shadow
(Перед созданием файловой системы изображения) измените этот файл, чтобы ввести пароль HASH (ES), которые вы хотите иметь.
Самый простой способ сделать это с недавними версиями инструмента Chapswd
из Suite Ninux Shadow Utilities (Debian Rheezy достаточно недавно) с вариантом -R
. Использование образца:
chpasswd -R /path/to/build/tree <passwords.txt
С Passwords.txt
, содержащие строки, такие как
root:swordfish
alibaba:opensesame
, если ваша среда сборки не поддерживает chapswd -r
, вы можете использовать инструмент, который генерирует хеш пароль Призывая функцию Crypt
и введите, чтобы в тене файл
по текстовым манипуляциях. Например, (непроверенный код):
#!/usr/bin/python
import base64, crypt, os, re, sys
for line in sys.stdin.readlines():
(username, password) = line.strip().split(":")
salt = "$6$" + base64.b64encode(os.urandom(6))
hashes[username] = crypt.crypt(password, salt)
old_shadow = open("etc/shadow")
new_shadow = open("etc/shadow.making", "w")
for line in old_shadow.readlines():
(username, password, trail) = line.lstrip().split(":", 3)
if hashes.has_key(username):
line = username + ":" + hashes[username] + ":" + trail
new_shadow.write(line)
old_shadow.close()
new_shadow.close()
os.rename("etc/shadow.making", "etc/shadow")