[lightnir@keeper ~/]$ su
The Evil One> lsusb
Bus 005 Device 006: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
Bus 005 Device 001: ID 1d6b:0002
Bus 004 Device 001: ID 1d6b:0001
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 002: ID 046d:c018 Logitech, Inc.
Bus 002 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID 046d:c312 Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0001
The Evil One> fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 * 1 24 192748+ 83 Linux
/dev/sda2 19093 19457 2931862+ 82 Linux swap / Solaris
/dev/sda3 25 19092 153163710 83 Linux
Partition table entries are not in disk order
Disk /dev/sdb: 4099 MB, 4099866624 bytes
128 heads, 63 sectors/track, 993 cylinders
Units = cylinders of 8064 * 512 = 4128768 bytes
Disk identifier: 0xbdd2bdd2
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 993 4003744+ c W95 FAT32 (LBA)
A więc sprzęt działa i laptopowy dysk jest widoczny jako /dev/sdb. Przystąpiłem więc do stworzenia obrazu dysku używając do tego uniksowego polecenia dd.
The Evil One> dd if=/dev/sdb of=/obraz.img
8007489+0 przeczytanych recordów
8007489+0 zapisanych recordów
skopiowane 4099834368 bajtów (4,1 GB), 460,754 s, 8,9 MB/s
Jak widać trwało to dobre 8 minut. Zanim od montowałem laptopowy dysk sprawdziłem jeszcze informację od którego sektora zaczyna się partycja.
The Evil One> fdisk -ul /dev/sdb
Disk /dev/sdb: 4099 MB, 4099866624 bytes
128 heads, 63 sectors/track, 993 cylinders, total 8007552 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xbdd2bdd2
Device Boot Start End Blocks Id System
/dev/sdb1 * 63 8007551 4003744+ c W95 FAT32 (LBA)
Teraz trochę matematyki 63 sektorów na ścieżkę × 512 bajtów na sektor = 32256. Według tutoriala, którego wtedy używałem taki właśnie offset powinna mieć pierwsza partycja na dysku. Zabrałem się więc do próby zamontowania utworzonego obrazu dysku w celu sprawdzenia jego poprawności.
The Evil One> mkdir /mnt/dysk
The Evil One> mount -o loop,offset=32256 -t vfat obraz.img /mnt/dysk
mount: could not find any device /dev/loop#
Hmm, pierwsza niespodzianka - loop device nie istnieje. Nie wiem jak jest w innych dystrybucjach, ale w tym momencie się dowiedziałem, że w dystrybucji Archlinux trzeba załadować stosowny moduł.
The Evil One> modprobe loop
The Evil One> mount -o loop,offset=32256 -t vfat obraz.img /mnt/dysk
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
The Evil One> dmesg|tail
FAT: Directory bread(block 15658) failed
FAT: Directory bread(block 15659) failed
FAT: Directory bread(block 15660) failed
FAT: Directory bread(block 15661) failed
FAT: Directory bread(block 15662) failed
FAT: Directory bread(block 15663) failed
FAT: Directory bread(block 15664) failed
FAT: Directory bread(block 15665) failed
FAT: bogus number of reserved sectors
VFS: Can't find a valid FAT filesystem on dev loop0.
ok, druga niespodzianka. Co jest grane? Jak to nie ma systemu plików skoro go dopiero przed chwilą zgrywałem? Wgryzłem się w czytanie manuala jak to jest z montowaniem obrazów dysków. Istotna jest w tym momencie wiedza, w którym miejscu zaczyna się partycja, bo przecież można mieć obraz dysku zawierającego wiele partycji. Mnie się wydawało, że partycja powinna się zaczynać przy offsecie 32256, czyli bezpośrednio po tablicy FAT. Obraz nie montował się poprawnie ponieważ myliłem się co do offsetu. Na szczęście udało mi się zastosować "brudne rozwiązanie" - skrypt shellowy.
forcemount.sh(Toggle Plain Text)
1 2 3 4 5 | #!/bin/bash for ((i=0 ; $i < 40000 ; i=$i + 1)) ; do mount -o loop,offset=$(($i * 512)) -t vfat obraz.img /mnt/dysk && break done |
The Evil One> ./forcemount.sh
The Evil One> mount|grep obraz.img
/obraz.img on /mnt/dysk type vfat (rw,loop=/dev/loop0,offset=0)
The Evil One> cd /mnt/dysk
The Evil One> ls -l
razem 71400
-rwxr-xr-x 1 root root 416 sty 4 1980 LEGO Creator Knights Kingdom Error Log_0.log
drwxr-xr-x 4 root root 4096 cze 15 2002 Moje dokumenty
drwxr-xr-x 3 root root 4096 cze 15 2002 Multimedia Files
drwxr-xr-x 26 root root 4096 cze 13 2002 Program Files
-rwxr-xr-x 1 root root 278 sty 6 1980 autoexec.bat
drwxr-xr-x 2 root root 4096 gru 7 2005 boot
-rwxr-xr-x 1 root root 22714 sty 4 1980 bootlog.prv
-rwxr-xr-x 1 root root 22968 sty 4 1980 bootlog.txt
-rwxr-xr-x 1 root root 95764 lis 12 1996 command.com
drwxr-xr-x 3 root root 4096 cze 15 2002 compaq
-rwxr-xr-x 1 root root 100 sty 6 1980 config.sys
-rwxr-xr-x 1 root root 636 cze 15 2002 detlog.old
-rwxr-xr-x 1 root root 68890 sty 4 1980 detlog.txt
-rwxr-xr-x 1 root root 5412 gru 13 2005 ffastun.ffa
-rwxr-xr-x 1 root root 65536 gru 13 2005 ffastun.ffl
-rwxr-xr-x 1 root root 53248 gru 13 2005 ffastun.ffo
-rwxr-xr-x 1 root root 516096 gru 13 2005 ffastun0.ffx
-rwxr-xr-x 1 root root 4096 sty 4 1980 file0001.chk
drwxr-xr-x 7 root root 4096 lut 2 2003 fp6
-r-xr-xr-x 1 root root 19024896 cze 15 2002 hibrn8.dat
-r-xr-xr-x 1 root root 214836 lis 12 1996 io.sys
drwxr-xr-x 2 root root 4096 mar 6 2004 janusz
-rwxr-xr-x 1 root root 51200000 gru 9 2005 linux.swp
-rwxr-xr-x 1 root root 129078 lis 12 1996 logo.sys
drwxr-xr-x 4 root root 4096 lip 14 2003 misc
drwxr-xr-x 3 root root 4096 gru 20 2002 monika
-rwxr-xr-x 1 root root 22 cze 13 2002 msdos.---
-r-xr-xr-x 1 root root 1641 sty 6 1980 msdos.sys
-rwxr-xr-x 1 root root 742 cze 13 2002 netlog.txt
-rwxr-xr-x 1 root root 34304 lis 10 2002 plan.doc
drwxr-xr-x 2 root root 4096 cze 15 2002 recycled
-rwxr-xr-x 1 root root 54097 cze 13 2002 setuplog.txt
-r-xr-xr-x 1 root root 5166 cze 13 2002 suhdlog.dat
-r-xr-xr-x 1 root root 1479672 cze 15 2002 system.1st
drwxr-xr-x 2 root root 4096 maj 1 2003 wchf
drwxr-xr-x 43 root root 12288 cze 13 2002 windows
drwxr-xr-x 4 root root 4096 cze 18 2002 ~mssetup.t
A więc offset pierwszej partycji wynosił 0, a nie 32256 jak mi się początkowo wydawało. Jak widać obraz się zamontował i widoczna jest zawartość "dysku c". Teraz pozostaje mi zastanowienie się jakiego Linuksa wybrać do postawienia na tym laptopie oraz jak go w ogóle tam zainstalować? Może ktoś ma jakieś sugestie odnośnie dobrej dystrybucji?