Mail  Admin  Statistika  Lab  mike  


www.psaxf.net
Linux, Unix, Open Source, Internet Security, Konzultace, Workshopy, Virtualizace, Forensic, Hacking

Intro

Některé OS firmy Microsoft používají pro organizaci dat na disku ntfs. Život IT admina je pestrý. Čas od času se stane, že si potřebuje OS přiohnout. V tomto případě to, ale tak není. Jde o to zachránit ze starého dosluhujícího disku co nejvíce dat. Na této stránce naleznete pár napadů, které se hodí při manipulaci s ntfs.

Partitions

FS (File System - souborový systém) je na pevném disku organizovan pomocí "partitions" - samostatné diskové oddíly. Partitions mají identifikátor podle kterého lze poznat typ souborového systému. Tabulku obsazení pevného disku lze získat například pomocí linuxového fdisku.

[mike@jim ~]$ sudo fdisk -l /dev/sda
Disk /dev/sda: 80,0 GB, 80 026 361 856 bajtů

Zařízení Zavádět   Začátek       Konec    Bloky    Id  Systém
/dev/sda1   *           1       40450    20386453+   7  HPFS/NTFS
/dev/sda3           81361      155056    37142280    f  W95 Rozš. (LBA)
/dev/sda5           81362      152379    35792788+   7  HPFS/NTFS

Identifikátor (Id) pro ntfs je 7.

Záloha

I opice spadne, říká japonské přísloví. Důkladná záloha dat před začátkem prací je polovina úspěchu. Budeme manipulovat s partitions table. Uschováme si do souboru aktuální konfiguraci disku.

[mike@jim ~]$ sudo fdisk -l /dev/sda > diskove_oddily_sda

Data z ntfs vydolujeme pomocí šikovného nástroje ntfsclone

[mike@jim image]$ sudo ntfsclone --rescue -s -o - /dev/sda1 | gzip > image/sda1_image.gz

gzip provádí transparentní kompresi. Výsledný soubor bude menší. Svůj procesor můžete ušetřit vynecháním komprese.

[mike@jim image]$ sudo ntfsclone --rescue -s -o disk_img /dev/sda1
[sudo] password for mike:
ntfsclone v2.0.0 (libntfs 10:0:0)
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 20875726848 bytes (20876 MB)
Current device size: 20875728384 bytes (20876 MB)
Scanning volume ...

Víc detailů? Tož tak to zkuste many.

man fdisk
man fdisk
man gzip
man gzip
man ntfsclone
man ntfsclone

Partitions table

Předchozí admin, který je teď nezaměstnaný, byl trochu chaotik a zanechal disk hodně podezřele nakonfigurovaný. Grafický pohled na alokaci místa nabízí Gparted. Trojuhelník se symbolem vykřičníku u oblasti sda1 navíc ukazuje na další problémy. Disk se nakazil badblocky.

Na pevném disku standardního PC mohou být maximálně 4 primární oblasti a větší množství (v závislosti na typu hardware 16 - 64) logických oblasti. Abychom mohli využívat logické diskové oblasti, musíme mít na disku vyhradit jeden primární oddlíl a nastavit mu správné Id - #0F (dekadicky 15).

Badblocks je vážná choroba, která postihuje především starší disky. Většinou znamená okamžitý odchod disku do invalidního důchodu. Pro naše učely se tento disk hodí výborně. Na produkčním serveru bych následující příkazy rozhodně nezkoušel.

fdisk - nová konfigurace

19 GB pro c: není v dnešní době nic moc, proto se pokusíme první oddíl natahnout až ke druhém. Pomocí programu fdisk smažeme první partition a znovu ji vytvoříme. Volné místo je ok, ale pozor na překryv (overlap) - hrozí ztráta dat,

[mike@jim ~]$ sudo fdisk /dev/sda

Disk /dev/sda: 80,0 GB, 80 026 361 856 bajtů
Zařízení Zavádět   Začátek       Konec    Bloky    Id  Systém
/dev/sda1   *           1       40450    20386453+   7  HPFS/NTFS
/dev/sda3           81361      155056    37142280    f  W95 Rozš. (LBA)
/dev/sda5           81362      152379    35792788+   7  HPFS/NTFS

Příkaz (m pro nápovědu): d
Číslo diskového oddílu (1-5): 1

Příkaz (m pro nápovědu): n
Příkaz
   l   logický diskový oddíl (5 nebo více)
   p   primární diskový oddíl (1-4)
p
Číslo diskového oddílu (1-4): 1
První cylindr (1-155061, implicitně 1):
Používám implicitní hodnotu 1
Poslední cylindr, +cylindry nebo +velikost{K,M,G} (1-81360, implicitně 81360):
Používám implicitní hodnotu 81360

Příkaz (m pro nápovědu): t
Číslo diskového oddílu (1-5): 1
Šestnáctkově (L vypíše kódy):7
Typ diskového oddílu 1 byl změněn na 7 (HPFS/NTFS)

Příkaz (m pro nápovědu): a
Číslo diskového oddílu (1-5): 1

Příkaz (m pro nápovědu): p

Disk /dev/sda: 80,0 GB, 80 026 361 856 bajtů
Zařízení Zavádět   Začátek       Konec    Bloky    Id  Systém
/dev/sda1   *           1       81360    41005408+   7  HPFS/NTFS
/dev/sda3           81361      155056    37142280    f  W95 Rozš. (LBA)
/dev/sda5           81362      152379    35792788+   7  HPFS/NTFS

Příkaz (m pro nápovědu): w
Tabulka rozdělení disku byla změněna!
Volám ioctl() pro znovunačtení tabulky rozdělení disku.
Synchronizují se disky.

ntfsresize

Příkaz ntfsresize nedokáže manipulovat s partitions table, prote se musí upravit pomocí fdisku. Teď po přípravě už nic nebrání tomu zvětšit ntfs.

[mike@jim ~]$ sudo ntfsresize --bad-sectors /dev/sda1

Troubleshooting

Problémy při bootovaní? Na instalačním CD bývá rescue konzole a v ní příkaz fixmbr. Mohl by pomoci.

Odkazy

Popis ntfs v české wikipedii

Podpora pro ntfs v linuxu http://www.linux-ntfs.org/

Podpora ntfs pro různé OS http://www.ntfs-3g.org/


http://www.itangel.cz/ http://www.sily.cz/ http://www.ikonopi.cz/ http://www.totodivadlo.cz/