[#1] Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach
Mam w A600 kartę SD o pojemności 512MB, a na niej zainstalowany Workbench i kilka aplikacji. Chciałbym przenieść tą instalację na inny dysk (kartę SD), o pojemności 4GB. Jak mam to zrobić?
Spróbowałem zrobić to po "PC-towemu", czyli zrzuciłem kartę źródłową na dysk (cat /dev/sdc > obraz), a potem operacją odwrotną ten sam obraz wrzuciłem na kartę docelową. Amiga się zabootowała i działa normalnie. Problem w tym, że z karty widzi wyłącznie tyle ile było jej na wejściu, czyli 512MB. Widzę, że filozofia jest tu inna, bo o ile na PC nie mam problemu z takimi przenosinami i potem mogę wolne miejsce wykorzystać rozszerzając partycje albo zakładając nowe, to tutaj nic z tego. A jako nieobyty, nie mam pojęcia, jak powinienem postąpić. Podpowiecie?

PS. Jestem bardzo początkującym amigowcem, mam za to duże doświadczenie z Linuksem. Ale tutaj filozofia jest inna i moje intuicje nie działają.

Ostatnia aktualizacja: 04.05.2016 21:37:56 przez perinoid
[#2] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #1

Załóż partycje na karcie 4gb pod amiga i przegraj wszystko na nową karte.. Najlepiej użyć winuae do tego.
Przed założeniem partycji wyczyść nową karte przy pomocy diskpart.
Na youtube sa poradniki.
[#3] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #1

Ja to robiłem następująco (zakładając że masz tylko jeden czytnik kart SD).
1. Podłączyłem pierwszą kartę SD pod WinUAE
2. Stworzyłem plik dyskowy hdf i też zamontowałem pod WinUAE
3. Uruchomiłem WinUAE z tego pierwszego dysku
4. Skopiowałem wszystkie pliki z pierwszego na drugi.
5. Zamontowałem drugą kartę zamiast pierwszej i uruchomiłem WB z dyskietki/ADF, założyłem partycje według potrzeb.
6. Skopiowałem pliki z pliku dyskowego na drugą kartę
Czyli kluczem jest osobne sformatowanie i założenie partycji na tej drugiej karcie. Reszta to tylko skopiowanie wszystkich plików
[#4] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #1

Z tego co wiem, to Amiga od Linuksa różni się tym, że część systemu mieści się w kości ROM Kickstart, co ułatwia boot systemu. W PC/Linux masz MBR, bootloadery typu Grub, wszystko musi być w określonych sektorach na dysku. W Amidze wystarczy jak partycja jest typu boot i na niej jest komplet plików. Rozmieszczenie na sektorach nie ma znaczenia. Dlatego po prostu kopiuj wszystkie pliki, także te ukryte na emulowanej Amidze. Jak się mylę, to mnie poprawcie.
[wyróżniony] [#5] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #1

Dzięki, chłopaki, ale zrobiłem po "linuksowemu". Dla potomnych:

Do przeprowadzenia tej operacji potrzebne są programy xdftool i rdbtool z pakietu amitools. Ja bez większego problemu skompilowałem i zainstalowałem je sobie na moim PLD, więc nie powinno być też problemu na bardziej standardowych dystrybucjach typu Debian, Ubuntu itp. Potrzebny jest też czytnik kart CF (załóżmy, że karta będzie widziana pod Linuksem jako /dev/hdc, w innym przypadku trzeba dopasować jedną literkę).

Zacznijmy od utworzenia obrazu karty źródłowej. Ja to robię najprostszą metodą, mianowicie:
$ cat /dev/sdc > stary.img

Jeśli ktoś woli używać dd, to można i tak:
$ dd if=/dev/sdc of=stary.img

Za pomocą rdbtool można sprawdzić, jak widoczny jest dysk. U mnie wygląda to tak:
$ rdbtool stary.img info
PhysicalDisk:               0      992     1000944  488Mi  heads=16 sectors=63
LogicalDisk:                2      992      998928  487Mi  rdb_blks=[0:2015,#2016] used=[hi=49,#50] cyl_blks=1008
Partition: #0 'DH0'         2      497      499968  244Mi   50.05%  DOS1/0x444f5301 max_transfer=0xffffff mask=0x7ffffffe num_buffer=30 bootable pri=0
Partition: #1 'DH1'       498      992      498960  243Mi   49.95%  DOS1/0x444f5301 max_transfer=0xffffff mask=0x7ffffffe num_buffer=30
FileSystem #0 DOS1/0x444f5301 version=0.0 size=22464 seg_list_blk=0x4 global_vec=0xffffffff

Jak widać, na mojej karcie są 2 partycje DH0 i DH1 i rozmiarze ~244MB każda. Same oznaczenia partycji mogą być istotne (ja zakładam, że są i takiej wersji się będę trzymał). Dodatkowo można jeszcze obejrzeć pliki na partycjach (proszę zauważyć, że podaję nazwy partycji zgodne z informacjami z poprzedniej komendy, aczkolwiek w przypadku part= można używać numerów 0 i 1, znaczą to samo):
$ xdftool stary.img open part=DH0 + list
System                                           VOLUME  --------  02.05.2008 22:35:57 t04  DOS3:ffs+intl
[...]
sum:          8120  4.0Mi       4157440
data:         7500  3.7Mi       3840000  92.36%
fs:            620  310Ki        317440   7.64%

$ xdftool stary.img open part=DH1 + list
Data                                             VOLUME  --------  03.05.2008 00:48:54 t32  DOS3:ffs+intl
[...]
sum:         20076  9.8Mi      10278912
data:        19641  9.6Mi      10056192  97.83%
fs:            435  217Ki        222720   2.17%

W dalszych krokach użyję informacji z tego wydruku, a mianowicie etykiet "System" i "Data" dla systemów plików na poszczególnych partycjach.
Kolejnym krokiem jest zgranie danych z karty wraz z odpowiednimi metadanymi. Do tego celu użyję xdftool:
$ xdftool stary.img open part=DH0 + unpack System
$ xdftool stary.img open part=DH1 + unpack Data

Teraz trzeba przygotować cel. Najpierw tzeba sprawdzić, jak "widzi" nową kartę Amiga. Ja w tym celu podłączyłem ją pod port IDE i odpaliłem z dyskietki instalacyjnej Workbencha, a następnie za pomocą HDToolBox-a wyciągnąłem tą informację (jeśli istnieje prostszy sposób, prosiłbym o info). W moim przypadku dla katy SanDisk Ultra 4GB CompactFlash 30MB/s geometria to: 7751 cylindrów, 16 głowic, 63 sektory/ścieżkę. Mając tą informację oraz dane z poprzednich kroków, za pomocą rdbtool przygotowujemy obraz nowego dysku:
$ rdbtool nowy.img create chs=7751,16,63 + init rdb_cyls=2 + add start=2 end=1000 name=DH0 dostype=0x444f5303 pri=0 bootable=yes + add start=1001 end=2000 name=DH1 dostype=0x444f5303

Powyższa komenda powoduje utworzenie obrazu dysku (komenda create) o geometrii 7751,16,63 (dane zgodne z tymi powyżej), zainicjowaniu go (komenda init) oraz utworzeniu na nim dwóch partycji DH0 i DH1 zajmujących po ok. 1000 cylindrów każda (co daje partycje o rozmiarze niecałych 0.5GB). Pozostała część obrazu jest niewykorzystana i można ją później spartycjonować już na Amidze. Parametry podane w dostype pochodzą z wyniku rdbtool na starym obrazie (patrz wyżej) i zapewne można je pominąć, ale czy na pewno - nie sprawdzałem. Dodatkowo partycja DH0 jest ustawiana jako bootowalna.
W kolejnym kroku partycje trzeba sformatować:
$ xdftool nowy.img open part=DH0 + format System ffs+intl
$ xdftool nowy.img open part=DH1 + format Data ffs+intl

Etykiety dla poszczególnych filesystemów ustaliłem na zgodne z etykietami wejściowymi, stąd "System" i "Data", aczkolwiek to wymaganie zapewne konieczne nie jest (resztą jak zapewne kilka innych rzeczy, których użyłem, ale to wynika z mojej niewiedzy i wygląda na nadmiarowe, acz bezpieczne). Ostatecznie obraz przedstawia się teraz tak:
$ rdbtool nowy.img info                                                                                                       
PhysicalDisk:               0     7750     7813008  3.7Gi  heads=16 sectors=63                                                                                                            
LogicalDisk:                2     7750     7810992  3.7Gi  rdb_blks=[0:2015,#2016] used=[hi=2,#3] cyl_blks=1008                                                                           
Partition: #0 'DH0'         2     1000     1006992  491Mi   12.89%  DOS3/0x444f5303 max_transfer=0xffffff mask=0x7ffffffe num_buffer=30 bootable pri=0                                    
Partition: #1 'DH1'      1001     2000     1008000  492Mi   12.90%  DOS3/0x444f5303 max_transfer=0xffffff mask=0x7ffffffe num_buffer=30

Nie jest idealnie taki jak źródłowy, ale nie o to chodzi. Teraz trzeba nagrać na niego dane:
$ xdftool nowy.img open part=dh0 + pack System
$ xdftool nowy.img open part=dh1 + pack Data

Obraz jest gotowy. Możemy sobie sprawdzić jego zawartość za pomocą
$ xdftool nowy.img open part=DH0 + list
[...]
$ xdftool nowy.img open part=DH1 + list
[...]

Ostatnim krokiem jest nagranie obrazu na docelową kartę (oczywiście po zamianie kart w czytniku):
$ cat nowy.img > /dev/sdc

Moja A600 bez najmniejszego problemu wstała z tak przygotowanej karty CF. HDToolBox pozwala mi na dalsze jej partycjonowanie (czy można mieć na jednej karcie kilka wersji Workbencha na różnych partycjach?). Bez większego problemu powinno się udać tym sposobem przenieść również dane między klasycznymi twardymi dyskami, może między SDD a CF - teoretycznie problemów być nie powinno.

Ostatnia aktualizacja: 05.05.2016 17:28:28 przez perinoid
[#6] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #5

Super post, wyróżnić, przykleić, albo jakis artek z niego zrób do ppa.pl / Amigazynu. Szkoda żeby się zgubiło w czeluściach forum OK
[#7] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@vojo, post #6

Z tego co kojarzę, tylko autor wątku może w nim wyróżniać posty. No i pewnie moderatorzy.
[#8] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #5

Jeszcze małe uzupełnienie: nie ze wszystkimi dyskami (w zasadzie chodzi o format dysku) powyższy opis daje sobie radę. Nie umiem ruszyć obrazu karty z Workbenchem 3.1 dostarczanej przez pong777. Dla niej, niestety, zarówno xdftool jak i rdbtool wyświetlają błędy:
$ xdftool workbench_3.1.img info
'info' IOError: can't open rdisk of image file
$ rdbtool workbench_3.1.img info
'info' IOError: No RDB Disk?

Niestety, nie umiem tego przeskoczyć.
[#9] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@perinoid, post #8

Czy to na pewno jest obraz dysku amigowego, czy plikopartycja do winuae?
Jeśli to drugie, to wszystko jest w porządku. Taki plik może nie mieć rdb a emulator sobie poradzi.
[#10] Re: Przeniesienie systemu między dwiema kartami SD (różne dyski) o różnych pojemnościach

@Norbert, post #9

Po prawdzie to nie wiem. polecenie linuksowe file raportuje to jako "Rigid Disk Block on UAE-IDE", więc wydaje się, że zostało utworzone pod UAE. Ale "toto" nagrane na kartę CF pozwala Amidze poprawnie się zabootować. I zaczyna się od ciągu "RDSK". Więc albo to jest obraz dysku RDB, tylko nie umiem tego ugryźć, albo jest to plikopartycja UAE (tylko jakoś zawierająca 2 partycje), a Amiga też umie sobie z nią poradzić.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem