Divně se chovající disky

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #15 kdy: 20. 09. 2019, 09:13:37 »
Kód: [Vybrat]
# hdparm -N -p7814037168 /dev/sdb

/dev/sdb:
 attempting to set PIO mode to -775897424
 HDIO_SET_PIO_MODE failed: Inappropriate ioctl for device
 max sectors   = 7814035055/7814037168, HPA is enabled

Špatně zadáno, správně to je:

Kód: [Vybrat]
hdparm -N p7814037168

nebo

Kód: [Vybrat]
hdparm -Np7814037168


Ta pomlčka před p ve vašem pokusu vadí. Viz manuálová stránka k hdparm:

Kód: [Vybrat]
       -N     Get/set max visible number of sectors, also known as the Host Protected Area setting.  Without a  parameter,  -N
              displays  the current setting, which is reported as two values: the first gives the current max sectors setting,
              and the second shows the native (real) hardware limit for the disk.  The difference between these two values in‐
              dicates  how many sectors of the disk are currently hidden from the operating system, in the form of a Host Pro‐
              tected Area (HPA).  This area is often used by computer makers to hold diagnostic software, and/or a copy of the
              originally  provided  operating system for recovery purposes.  Another possible use is to hide the true capacity
              of a very large disk from a BIOS/system that cannot normally cope with drives of that  size  (eg.  most  current
              {2010} BIOSs cannot deal with drives larger than 2TB, so an HPA could be used to cause a 3TB drive to report it‐
              self as a 2TB drive).  To change the current max (VERY DANGEROUS, DATA LOSS IS EXTREMELY LIKELY),  a  new  value
              should  be provided (in base10) immediately following the -N option.  This value is specified as a count of sec‐
              tors, rather than the "max sector address" of the drive.  Drives have the concept of a temporary (volatile) set‐
              ting  which  is lost on the next hardware reset, as well as a more permanent (non-volatile) value which survives
              resets and power cycles.  By default, -N affects only the temporary (volatile) setting.  To change the permanent
              (non-volatile) value, prepend a leading p character immediately before the first digit of the value.  Drives are
              supposed to allow only a single permanent change per session.  A hardware reset (or power cycle) is required be‐
              fore  another  permanent -N operation can succeed.  Note that any attempt to set this value may fail if the disk
              is being accessed by other software at the same time.  This is because setting the  value  requires  a  pair  of
              back-to-back  drive commands, but there is no way to prevent some other command from being inserted between them
              by the kernel.  So if it fails initially, just try again.  Kernel support for -N is buggy for many adapter types
              across  many  kernel versions, in that an incorrect (too small) max size value is sometimes reported.  As of the
              2.6.27 kernel, this does finally seem to be working on most hardware.

Bez toho "p" to je jen dočasné (do dalšího resetu zařízení) s tím "p" před číslem je ta změna permanentní. Parametr "-p" dělá přeprogramování IDE interface chipsetu pro specifický PIO mód, takže proto ta chyba.

PS: Pozor na tohle:

Citace
Drives are supposed to allow only a single permanent change per session.  A hardware reset (or power cycle) is required before  another  permanent -N operation can succeed.
« Poslední změna: 20. 09. 2019, 09:15:45 od ByCzech »


Re:Divně se chovající disky
« Odpověď #16 kdy: 20. 09. 2019, 12:44:00 »
Já jsem si říkal, že mi tam man sype poněkud jiné věci, než jsme mi tu řekli vy, ale pak jsem si řekl, že zálohu mám a zkazit není co. Pomlčky jsem si nějak nevšiml. S ní to...... funguje! Jeden z disků mám zpět.
Úspěšně namountováno a obsahuje data. Moc děkuju všem zúčastněným!

Nicméně druhý disk na stejnou medicínu reagoval o poznání méně pozitivně. hdparm hlásil využití/viditelnost něco jako 5860577134/7814037168. Opravil jsem to stejným způsobem, ale nestalo se nic. /dev/sdh1 jsem viděl i předtím, mount hlásil (a hlásí)
Kód: [Vybrat]
mount: /mnt/7: wrong fs type, bad option, bad superblock on /dev/sdh1, missing codepage or helper program, or other error.což by podle mě ukazovalo na chybu filesystému. Nicméně když jsem zkusil gdisk, dostal jsem:
Kód: [Vybrat]
# gdisk /dev/sdh1
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): p
Disk /dev/sdh1: 5860573184 sectors, 2.7 TiB
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 2E148545-E33D-45D2-9AC0-F98A57B0F622
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 5860573150
Partitions will be aligned on 2048-sector boundaries
Total free space is 5860573117 sectors (2.7 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name

Command (? for help):

Druhá invokace vypadá trošku jinak (tu první jsem hned ukončil 'q', chtěl jsem jen vidět stav)
Kód: [Vybrat]
# gdisk /dev/sdh
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sdh: 5860577134 sectors, 2.7 TiB
Model: ST4000VN008-2DR1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 13B1C2A4-E224-48CE-91D7-8CE955A73ADD
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 5860577100
Partitions will be aligned on 2048-sector boundaries
Total free space is 3883 sectors (1.9 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      5860575231   2.7 TiB     8300

Command (? for help):

Pochopil jsem, že první volání automaticky vytvořilo GPT, nicméně kde se vzala (a co znamená) protective MBR - master boot record na tom disku nemá co dělat, není systémový, nebootuju z něj. A velikost toho disku v sektorech mi přijde pořád stejná jako před hdparm, ačkoliv jak jsem psal na začátku tohohle příspěvku, hdparm zafungoval a hpa bylo vypnuto.

Re:Divně se chovající disky
« Odpověď #17 kdy: 20. 09. 2019, 13:21:32 »
no pro ten druhý disk je potřeba použít samozřejmě jiný číslo, nepoužil jsi náhodou to stejné?  ;D

kolik ted říká na druhým disku sudo hdparm -N /dev/sdx ? raději vypnout počítač a zapnout předtím

5860577134/7814037168 se mi zdá divné, z prvního disku chybělo jen kolem 1M, toto je už nějak moc

navíc tento disk má být asi 3TB a ten vyléčený má být 4TB? očekával bych to číslo v tomto poměru zhruba, t.j. asi kolem těch 5860500000

takhle to vypadá, že disk je 4TB a byl HPA omezen na 3TB? no tím odstraněním HPA z něj uděláš 4TB disk, akorát GPT nebude zarovnaný, ale asi bych ho smazal a přehrál data ze zálohy a radoval se, že mám větší disk?

nebo jsi napsal počet sektorů z 4TB disku do 3TB disku, ani jsem nevěděl, že to jde, haha  ;D

v tom případě tam vrať to 5860577134, vypnout, zapnout, zkontrolovat, jestli ještě HPA hlásí


jinak MBR je starý systém rozdělování disků a GPT nový pro disky nad 2TB. že tam máš protective MBR neznamená, že se z něj startuje, ale je to jenom falešná MBR, aby si nějaký software nemyslel, že disk je volný a nepřepisoval ho
« Poslední změna: 20. 09. 2019, 13:23:09 od Jan Fikar »

Re:Divně se chovající disky
« Odpověď #18 kdy: 20. 09. 2019, 13:40:47 »
Ne, to je číslo, co jsem vzal z tohohle disk a jeho hdparm -N :)
Popravdě bych se nedivil, kdyby tenhle disk byl hardwarově divnej - pokud si pamatuju, tak jsem docela dlouho tancoval, než začal fungovat - ručně jsem musel nastavovat nějaké cylindry a tak, protože automaticky to gdisk nebral. Ale je to už dávno a detaily milosrdně zmizely.

Nicméně, tenhle disk je skutečně 3TB (a ten zdravý byl 4TB), vrátil jsem tam (s použitím asi nejdivnějšího přepínače) původní hodnotu, kterou jsem si prozíravě zapsal. V tuhle chvíli gdisk neprotestuje, ale partitiona pořád nejde mountnout protože ta samá chyba (wrong fs type). fsck mi hlásí asi půl milionu chyb typu
Kód: [Vybrat]
Error writing block 973078528 (Invalid argument).  Ignore error? yes

Error writing block 732954624 (Invalid argument) while writing block and inode bitmaps.  Ignore error? yes
A mount selhává pořád stejně - fsck tvrdí, že filesystem byl modifikovaný, ale rozhodně nebyl uzdravený.
V zásadě mi nejde ani o to, abych zachránil obsah (i když by to ušetřilo něco času), jako spíš mít disk, na který můžu zase číst a zapisovat. Mám se teda vydat cestou hdparm->zvýšit hodnotu, gdisk->nová tabulka, nový oddíl, e2mkfs->format? V případě selhání vrátit původní hpa hodnotu a pokračovat gdiskem stejně?

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #19 kdy: 20. 09. 2019, 14:13:14 »
V zásadě mi nejde ani o to, abych zachránil obsah (i když by to ušetřilo něco času), jako spíš mít disk, na který můžu zase číst a zapisovat. Mám se teda vydat cestou hdparm->zvýšit hodnotu, gdisk->nová tabulka, nový oddíl, e2mkfs->format? V případě selhání vrátit původní hpa hodnotu a pokračovat gdiskem stejně?

Osobně bych zkusil vypnout HPA (restart, aby se HW resetoval drive), přepsat první bloky nulami (dd if=/dev/zero of=/dev/hdX bs=1M count=10) a vytvořit novou partition table, protože pokud se v původním stroji šachovalo s geometrií, může to teď dělat problém. Tímto si myslím, že by měl být disk v pořádku.


Re:Divně se chovající disky
« Odpověď #20 kdy: 20. 09. 2019, 14:15:25 »
kolik teď ten nemocnej disk říká na sudo hdparm -N /dev/sdx ?

zrušil bych HPA, aby to prostě potom říkalo:
 max sectors   = číslo/to stejný číslo, HPA is disabled

a pak bych určitě zkusil smartctl -t long /dev/sdx, po těch několika hodinách by měl být výsledek v logu v smartctl -a /dev/sdx

případně bych ještě disk otestoval pomocí badblocks -wsv -b 4096 -c 4096 /dev/sdx

ten to přepíše několikrát a napíše, kolik je chyb, ale může to trvat i dny

ten smart test nezávysí od HPA, badblocks jo, to už by mělo být vypnutý

Re:Divně se chovající disky
« Odpověď #21 kdy: 20. 09. 2019, 14:18:16 »
přepsat první bloky nulami

docela zrada je, že gpt je i na konci

osvědčilo se wpiefs -a /dev/sdx1 a wipefs -a /dev/sdx, což by po detekci GPT mělo vymazat jak začátek tak i konec

no po tom badblocks, jak jsem už doporučoval, je to stejně jedno, ten smaže všechno

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #22 kdy: 20. 09. 2019, 14:43:25 »
přepsat první bloky nulami

docela zrada je, že gpt je i na konci

Ano na konci disku je druhá (záložní) tabulka GPT. Ale ještě se mi nestalo, aby po vymazání úvodního kusu byl problém s tím, že je na konci disku kopie. Prostě se nechá udělat nová tabulka rozdělení disku a ta na konci se přepíše.

Problém nastává, pokud je druhá kopie nedostupná nebo poškozená ap., což se řeší v tomto vlákně.

BTW. vypadá, že zapnuté HPA byl problém se zapnutým pseudoHW RAID v původním stroji, jak jsem tipoval: https://wiki.archlinux.org/index.php/GPT_fdisk#Convert_between_MBR_and_GPT

Citace
There are known corruption issues with the backup GPT on laptops that are Intel chipset based, and run in RAID mode. The solution is to use AHCI instead of RAID, if possible.

Re:Divně se chovající disky
« Odpověď #23 kdy: 20. 09. 2019, 15:45:33 »
Kód: [Vybrat]
/dev/sdh:
 max sectors   = 5860577134/7814037168, HPA is enabled

$ sudo hdparm -Np7814037168 /dev/sdh

/dev/sdh:
 setting max visible sectors to 7814037168 (permanent)
 max sectors   = 7814037168/7814037168, HPA is disabled
Proběhl restart, hodnota zůstala.
Kód: [Vybrat]
wipefs -a /dev/sdh1, wipefs -a /dev/sdhSmazalo se pár bajtů, zmizela mi z /dev partitiona /dev/sdh1 (očekávaně).
Kód: [Vybrat]
mkfs -t ext4 /dev/sdh1a.... nemám 4TB disk. Nicméně, mám 3.5TB disk, který se dá používat, což je o 3,5 TB víc, než jsem měl předtím.

Smekám, jednou chci být jako vy. Děkuju ještě jedenkrát.

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #24 kdy: 20. 09. 2019, 16:10:21 »
Kód: [Vybrat]
/dev/sdh:
 max sectors   = 5860577134/7814037168, HPA is enabled

$ sudo hdparm -Np7814037168 /dev/sdh

/dev/sdh:
 setting max visible sectors to 7814037168 (permanent)
 max sectors   = 7814037168/7814037168, HPA is disabled
Proběhl restart, hodnota zůstala.
Kód: [Vybrat]
wipefs -a /dev/sdh1, wipefs -a /dev/sdhSmazalo se pár bajtů, zmizela mi z /dev partitiona /dev/sdh1 (očekávaně).
Kód: [Vybrat]
mkfs -t ext4 /dev/sdh1a.... nemám 4TB disk. Nicméně, mám 3.5TB disk, který se dá používat, což je o 3,5 TB víc, než jsem měl předtím.

Smekám, jednou chci být jako vy. Děkuju ještě jedenkrát.

7814037168 sektorů je 4TB pokud to dělíte 1000 (jak to dělají výrobci HDD) a ne 1024 (jak by se to správně mělo). Každopádně přibylo vám na tomhle disku 1TB, který byl původně v protected area. Gratuluji 8)

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #25 kdy: 20. 09. 2019, 16:39:05 »
Kód: [Vybrat]
mkfs -t ext4 /dev/sdh1a.... nemám 4TB disk. Nicméně, mám 3.5TB disk, který se dá používat, což je o 3,5 TB víc, než jsem měl předtím.

Jinak pokud to je disk pouze na data (není systémový), je dobré rezervu pro roota dát nulovou, protože ve výchozím stavu je 5%, což u 4TB disku dělá cca 200GB. Ta kapacita se pak hodí.

při vytváření FS to je:

Kód: [Vybrat]
mkfs.ext4 -m0 /dev/sdXN
pokud už je FS vytvořen tak takto:

Kód: [Vybrat]
tune2fs -m0 /dev/sdXN
a užívat si vyšší kapacitu.

Re:Divně se chovající disky
« Odpověď #26 kdy: 20. 09. 2019, 16:43:19 »
Jojo, touhle cestou už jsem šel. Akorát si to vyzkouším až doma, právě jsem si blbě napsaným fstabem zařízl přístup z dálky (chyba ve fstabu + restart). Ale dobrá připomínka, udělám, než na to zapomenu :-)

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #27 kdy: 20. 09. 2019, 18:13:37 »
Jojo, touhle cestou už jsem šel. Akorát si to vyzkouším až doma, právě jsem si blbě napsaným fstabem zařízl přístup z dálky (chyba ve fstabu + restart). Ale dobrá připomínka, udělám, než na to zapomenu :-)

Aha, no jo, klasika - systemd. Před ním to fungovalo i s chybou. U "nepodstatných" (nesystémových) disků je od dob systemd třeba přidat parametr nofail, pak to pokračuje v bootu i když nejde daný disk připojit.

Viz třeba tady: https://forum.root.cz/index.php?topic=17382.0

Re:Divně se chovající disky
« Odpověď #28 kdy: 20. 09. 2019, 18:14:05 »
stejně bych ještě udělal tu kontrolu smart, to se může i s datama a měla by se dělat pravidelně, jednou za měsíc třeba?

jestli to HPA tam nebylo naschvál, aby se náhodou nepoužívala vadná část disku, ale spíš ne

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Divně se chovající disky
« Odpověď #29 kdy: 21. 09. 2019, 12:03:14 »
stejně bych ještě udělal tu kontrolu smart, to se může i s datama a měla by se dělat pravidelně, jednou za měsíc třeba?

jestli to HPA tam nebylo naschvál, aby se náhodou nepoužívala vadná část disku, ale spíš ne

Pravidelnou SMART kontrolu můžu doporučit taky. Ale 1 TB HPA tam bylo s největší pravděpodobností proto, protože disk byl v předchozím stroji spravován jako pseudoHW RAID a byl tam někde menší 3 TB disk, takže tenhle se zinicializoval jako "menší". To že se to nakonec v RAID nepoužíval je nepodstatné, takhle tyhle RAIDy fungují. Proto je lepší takové věci vypínat a nechat řadiče jet v AHCI režimu a případná pole sestavovat v OS.