Покажи Публикации - freealx
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: [1]
1  Linux секция за начинаещи / Настройка на програми / Re: UUID на NTFS дял -: Mar 07, 2010, 00:47
Здравейте,

Като че ли темата е позабравена, но само за пълнота и точност ще добавя няколко детайла свързани с проблема - ако акцента е върху промяната на 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.

Май че това е всичко - Успех!
Страници: [1]