Problém s externím diskem - vyřešeno

Pavel Troller patrol na sinus.cz
Pondělí Duben 3 06:05:47 CEST 2017


Krásné pondělí přeji,

> On Fri, Mar 31, 2017 at 04:58:33PM +0200, Pavel Troller wrote:
> > Zdravím,
> >   tak jsem dorazil domů a ihned pozkoušel.
> >   Zjistil jsem, že to je naprostá trivialita (tedy alespoň pod Linuxem :-) ).
> >   Napřed jsem zkusil:
> >   losetup /dev/loop0 /dev/sdb
> >   A vida, prošlo to, losetup lze použít i na device files, ne jen na plain
> > files (nikde se to ale neuvádí) a má vliv konverze těch 4k sektorů zpět na
> > 512B. Super!
> 
> hmm, to je zajimave.
> co vraci treba
> blockdev --getsz /dev/sdb
> blockdev --getsz /dev/loop0

root na arcus:/# blockdev --getpbsz /dev/sdb
4096
root na arcus:/# blockdev --getpbsz /dev/loop0
512
root na arcus:/# blockdev --getsz /dev/sdb
1953525168
root na arcus:/# blockdev --getsz /dev/loop0
1953525168

Jak vidíte, ten disk opravdu MÁ 4096B fyzické bloky. loop0 z nich udělá 512B.
Ten HW bastl to zjevně dělal taky, neboť partition tabulka je na ně
kalibrovaná. Loop nezmění velikost zařízení, což je správně.

Pro zajímavost, ten disk je typu TOSHIBA MQ01ABD100. V jeho popisu se uvádí,
že má AF512e - to znamená, že opravdu obsahuje 4K sektory, ale měl by je sám
konvertovat na 512B. Ovšem zjevně to nyní nedělá. Jsou na něm 4 piny pro
celkem 2 jumpery, možná by to šlo zapnout, ale ten USB konvertor to neměl,
tak soudím, že to asi dělal on.

> 
> >   fdisk /dev/loop0 pak viděl úplně normální legální partition tabulku a vše by
> > fungovalo, kdyby ovšem jádro vytvořilo příslušný partition file (tj.
> > /dev/loop0p1). Na to ale evidentně není u tohoto "zařízení" pamatováno.
> 
> tak to se da zaridit pres kpartx. Napr:
> 
> liber:~# kpartx -a /dev/vg/Vwordpress
> liber:~# ll /dev/mapper/vg-Vwordpress*
> lrwxrwxrwx 1 root root 8 Mar 10 20:31 /dev/mapper/vg-Vwordpress -> ../dm-25
> lrwxrwxrwx 1 root root 8 Mar 31 17:20 /dev/mapper/vg-Vwordpress1 -> ../dm-17
> lrwxrwxrwx 1 root root 8 Mar 31 17:20 /dev/mapper/vg-Vwordpress2 -> ../dm-18
> liber:~# kpartx -d /dev/vg/Vwordpress                                                                                                                         
> liber:~# ll /dev/mapper/vg-Vwordpress*
> lrwxrwxrwx 1 root root 8 Mar 10 20:31 /dev/mapper/vg-Vwordpress -> ../dm-25
> 
> to /dev/mapper/vg-Vwordpress1 /dev/mapper/vg-Vwordpress2 jsou 1. 2. oddil.

Jasně, ale to by jeden musel mít v jádře devmapper, a ten já tam nemám - tuto
funkci běžně nepovažuji za potřebnou a optimalizuji své systémy vyhozením
nepotřebných věcí všude, kde to jde. losetup -o to plně nahradí :-).
Většina mých počítačů jsou servery fungující jako ústředny či jiná statická
zařízení, takže je to vrstva navíc, která byla-li by využita rutinně, navíc i
trošku brzdí a přeci jen více kódu v cestě -> více možných chyb. To samé LVM,
též si u mne nenašel místo :-). Dceři v notebooku by to asi šlo, má tam nějaké
*buntu, takže tam to asi bude.

> 
> Lze to pochpitelne s libovolnym devicem a asi i se souborem - pak to udela samo
> ten losetup.
> 
> >   Tedy zpět na stromy, losetup -D, a losetup -o16384 /dev/loop0 /dev/sdb.
> >   Ofset 16384 nalezen pomocí "od" - začátek té partice byl jasně viditelný.
> >   Nu a pak už jen mount /dev/loop0 /mnt2 a bylo... Vše čitelné, dokonce i
> > zapisovatelné. Sláva.
> >   Takže disk nechám jak je, pokud by se to někdy podařilo opravit, ale
> > pochybuji (díky i za nabídku převodníku od pana Ovsíka, ale bohužel jde o
> > zcela jiné zařízení), moje destička má délku jako disk šířku a šířku jako disk
> > výšku - normálně se nasune na SATA + PWR konektory disku (takže je k němu
> > kolmo) a z druhé strany to má USB konektor. To celé se zavře do krabičky
> > velikosti jen o maličko větší, než je ten disk + ta destička.
> 
> OK, tak hlavne ze jsou data zachranena. Ale s tema sektorama mi to tedy neni
> moc jasne. :)
> 
> -- 
> Zito

Zdraví a děkuje Pavel


Další informace o konferenci Hw-list