Автор Тема: UUID на NTFS дял  (Прочетена 2718 пъти)

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
UUID на NTFS дял
« -: Jan 31, 2010, 23:45 »
Здравейте,
Имам следния странен проблем с NTFS дял.
Имам закачени 2 харда:
/dev/sdb - SATA2 с 2 NTFS дяла, 1 ext3 / , и 1 swap
/dev/sda - IDE 2 NTFS дяла.
Проблема е, че fdisk вижда всички дялов:
Disk /dev/sda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Disk identifier: 0x00000001

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1910    15342043+   7  HPFS/NTFS
/dev/sda2            1911       10011    65071282+   f  W95 Ext'd (LBA)
/dev/sda5            1911       10011    65071251    7  HPFS/NTFS

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Disk identifier: 0xf299f299

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        4424    35535748+   7  HPFS/NTFS
/dev/sdb2            4425        6211    14354077+  83  Linux
/dev/sdb3            6212       19457   106398495    f  W95 Ext'd (LBA)
/dev/sdb5            6212        6375     1317298+  82  Linux swap / Solaris
/dev/sdb6            6376       19457   105081133+   7  HPFS/NTFS

Но blkid не ми изкарва UUID на /dev/sdb6 дяла:
/dev/sda1: UUID="18C088DDC088C30C" TYPE="ntfs"
/dev/sdb1: UUID="16CC1E66CC1E4103" TYPE="ntfs"
/dev/sda5: LABEL="DATA" UUID="01CA6377D957ABE0" TYPE="ntfs"
/dev/sdb2: UUID="af2e6a0b-ee8a-40ed-8c17-513c1ac698fa" TYPE="ext3"
/dev/sdb5: UUID="8ee2229f-ba39-43c5-b9a8-3dda7651fda2" TYPE="swap"

Някой има ли случайно идея как мога да сетна UUID на NTFS partition без да го форматирам?
Иначе дистрото е Arch, версията на кърнъла е 2.6.32 от пакетите за Arch, но едвали това има значение :)
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

tolostoi

  • Напреднали
  • *****
  • Публикации: 1337
  • Distribution: Ubuntu
  • Window Manager: Unity
  • левел: авераж :)
    • Профил
Re: UUID на NTFS дял
« Отговор #1 -: Feb 01, 2010, 00:10 »
Мога ли да попитам за какво ти трябва UUID на дяла, понеже е много вероятно да минеш и без него, за където ти трябва. Просто питам, можеш да ми прескочиш мнението ако искаш.
Активен


... в Столичен инспекторат една година след миграцията, продължават да работят под Linux. Което, май прави "експеримента" успешен
by entusiast

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: UUID на NTFS дял
« Отговор #2 -: Feb 01, 2010, 00:19 »
Ами по някаква причина hal демона ми върти имената един път ми разпознава единия хард /dev/sda при рестарт става /dev/sdb и така.
Просто като ги опиша в fstab по UUID и нямам проблем с тези дребни подробности. Иначе си се маунтва без грешка ръчно просто е малко дразнещо :).
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: UUID на NTFS дял
« Отговор #3 -: Feb 01, 2010, 13:33 »
Някой да може да помогне?
Чичко Google общо взето ми каза да си форматна харда, обаче тази опция много те ме устройва.
Друго интересно нещо което забелязвам е че при някой инсталации /мисля че федората го правеше този номер/ намира дяла като Swap и му променя system type, след това с cfdisk ръчно трябва да го сетна на 07/ntfs/.
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: UUID на NTFS дял
« Отговор #4 -: Feb 01, 2010, 13:48 »
За да си създадеш ново UUID, ползвай тази серия от команди с root права
Код
GeSHi (Bash):
  1. uuidgen
  2. tune2fs /dev/sd*X -U генериран_номер_от_uuidgen
При теб замести /dev/sd*X с /dev/sdb6 ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: UUID на NTFS дял
« Отговор #5 -: Feb 01, 2010, 13:54 »
neter.
Мерси много, искам само да те попитам сигурен ли си, че ще сработи на NTFS защото малко по-други неща пишат. NTFS доколкото разбрах не поддържа uuid а се изчислявало от HAL по серийния номер на диска, в смисъл ако му сетна UUID който се ползва при Линуксла файлова система дали няма да се прецака?

П.с.
В мана на tune2fs пише следното

DESCRIPTION
       tune2fs allows the  system  administrator  to  adjust  various  tunable
       filesystem  parameters  on  Linux ext2, ext3, or ext4 filesystems.  The
       current values of these options can be displayed by using the -l option
       to tune2fs(8) program, or by using the dumpe2fs(8) program.
Май по този начин моята работа няма да стане.

Благодаря ти за отговора.
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: UUID на NTFS дял
« Отговор #6 -: Feb 01, 2010, 14:40 »
Прав си, но като се има в предвид, че опитът ми с NTFS клони към нулев, беше много вероятно да сбъркам от първия опит :) Ето обаче една извадка от ръководството на Sidux относно задаването на UUID за няколко файлови системи
Цитат
* swap: Създайте нов swap-раздел по следния начин: mkswap -L <псевдоним> /dev/XXX
* ext2/ext3: e2label /dev/XXX <псевдоним>
* reiserfs: reiserfstune -l <псевдоним> /dev/XXX
* jfs: jfs_tune -L <псевдоним> /dev/XXX
* xfs: xfs_admin -L <псевдоним> /dev/XXX
* fat/vfat: Задаване и смяна на псевдонима под Linux могат да бъдат извършени със средствата на пакета mtools:
 mlabel -i /dev/sdb1 ::<псевдоним>
или когато създавате файловата система, просто използвайте mkdosfs -n <псевдоним> <други опции>.
Или може да смените псевдонима на съществуваща fat файлова система с помощта на Windows.
* ntfs: ntfslabel /dev/XXX <псевдоним> или сменете използвайки Windows.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

KoIoSoS

  • Напреднали
  • *****
  • Публикации: 107
  • Distribution: Slackware
  • Window Manager: Xfce4.8
    • Профил
Re: UUID на NTFS дял
« Отговор #7 -: Feb 01, 2010, 14:46 »
http://wiki.archlinux.org/index.php/Persistent_block_device_naming
Точно така ntfslabel.
Има и за конфигуриране на  boot manager-а.
Активен

it is better to solve the right problem the wrong way than the wrong problem the right way   -- Doug McIlroy
Slackware Propaganda
http://video.google.com/videoplay?docid=-5210026640879077823

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: UUID на NTFS дял
« Отговор #8 -: Feb 01, 2010, 19:37 »
Благодаря много за отговорите.
Ще пробвам след малко и ще пиша резултата.
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

freealx

  • Новаци
  • *
  • Публикации: 1
    • Профил
Re: UUID на NTFS дял
« Отговор #9 -: 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.

Май че това е всичко - Успех!
Активен