Здравейте,
Като че ли темата е позабравена, но само за пълнота и точност ще добавя няколко детайла свързани с проблема - ако акцента е върху промяната на UUID-то.
В Майкрософтската документация на така наречения NTFS superblock е описано, че Volume Serial Number-а е 8 байта и е отместен на 0x48 (десетично 72) байта от началото на суперблока - демек, 10-тия блок от по 8 байтови блокчета ще ни даде точният номер побайтово реверсиран.
root@slax:~# dd if=/dev/sda1 bs=8 count=1 skip=9 | hexdump -C
00000000 73 47 38 28 6a 38 28 5a |sG8(j8(Z|
00000008
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.000732054 s, 10.9 kB/sМоже да се използват различни форми за описване на областта.
Например "
dd if=/dev/sda1 bs=1 count=8 skip=72 | hexdump -C" би свършило същата работа...
Проверка с БлокАйДи команда:
root@slax:~#blkid
/dev/sda1: UUID="5A28386A28384773" LABEL="WinXP32" TYPE="ntfs"
...Така, значи номера е 5A28-386A-2838-4773 , а началото на целия суперблок изглежда така:
root@slax:~# dd if=/dev/sda1 bs=512 count=1 | hexdump -C | head -6
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000496961 s, 1.0 MB/s
00000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
00000010 00 00 00 00 00 f8 00 00 3f 00 ff 00 3f 00 00 00 |........?...?...|
00000020 00 00 00 00 80 00 00 00 5b e0 7f 04 00 00 00 00 |........[.......|
00000030 00 00 0c 00 00 00 00 00 f4 ff 1f 00 00 00 00 00 |................|
00000040 f6 00 00 00 01 00 00 00 73 47 38 28 6a 38 28 5a |........sG8(j8(Z|
00000050 00 00 00 00 fa 33 c0 8e d0 bc 00 7c fb b8 c0 07 |.....3.....|....|
root@slax:~#Логичното решение е да се запише обратно, на точното място, предварително подготвен във файл номер.
Подготвяме си файл:
root@slax:~# dd if=/dev/sda1 bs=8 count=1 skip=9 of=mynumber.vsn
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.000555908 s, 14.4 kB/s
root@slax:~#hexdump -C mynumber.vsn
00000000 73 47 38 28 6a 38 28 5a |sG8(j8(Z|
00000008
root@slax:~#Пороменяме номера с произволен hex-редактор (в случая ползвам този на mc)
File: mynumber.vsn Offset 0x00000000 8 bytes 100% |
00000000 88 77 66 55 │ 44 33 22 11 │ .wfUD3". |
и го "изсипваме" обратно на точното място
root@slax:~# dd if=mynumber.vsn of=/dev/sda1 bs=1 count=8 skip=72Сега може да провериме с blkid или dd.
Май че това е всичко - Успех!