Linux. Program dd a wypalanie obrazów.

0

Witam
Mam pytania dotyczące programu dd i ogólnie jak działają systemy plików.
1))
Dlaczego nie można użyć programu dd w celu wypalenia płyty bootowalnej, problem
z tego forum https://unix.stackexchange.com/questions/68426/how-to-burn-iso-image-to-dvd-using-dd-command
a w przypadku bootowalnego pendrive można https://askubuntu.com/questions/59551/how-to-burn-a-windows-iso-to-a-usb-device

Albo jeżeli miałbym 2 takie same płyty i na jednej działający bootowalny obraz a druga plyta czysta i wykonałbym
takie operacje:

  1. Obraz płyty bootowalnej:
$ dd if=/dev/sr0 of=~user/Pulpit/image.iso bs=2K
  1. Następnie wkładam czystą taką samą płytę i wypalam
 dd if=~user/Pulpit/image.iso of=/dev/sr0 bs=2K 

To dlaczego to miałoby nie zadziałać? Z tego co wiem program dd dokładnie sektor
po sektorze kopiuje dane, taka dokładna kopia. Co robią magicznego programy do wypalania płyt?

2))
Na tym filmie
jest przedstawione w jaki sposób za pomocą dd zrobić bootowalny usb.
Gość najpierw formatuje pendrive systemem fat32 następnie programem dd
zapisuję obraz na nim. Pendrive jest zawsze większego rozmiaru niż wypalany obraz iso
więc jak mniemam program będzie brał pierwsze sektory z pliku .iso i wpisywał je od początku w pamięci
flash więc na końcu kawałek pamięci pozostanie. Czyli system plików na pendrive będzie iso9660 (ewentualnie udf)
a później pozostałości po fat32 (metadane) ? Po co w ogóle formatować fat32 jeżeli i tak nadpiszemy to obrazem .iso ?

Z góry dzieki za odpowiedzi

0

Czekaj, czekaj, czekaj. O co ci chodzi? Chcesz wypalić płytę czy USB?

Po co w ogóle formatować fat32 jeżeli i tak nadpiszemy to obrazem .iso ?

Nie rozumiem tego zdania w ogóle. Przecież obraz *.iso to tak jakby backup dysku...

I poza tym, jak chcesz nagrać obraz większy od dysku?

0

Chce tylko zrozumieć jak to działa.

0

Nie rozumiem tego zdania w ogóle. Przecież obraz *.iso to tak jakby backup dysku...

Ale jak ściągam np live cd np kali linux to zajmuje ok 2GB a pendrive mam np 8GB

0

Poczytaj:

  1. growisofs
  2. http://docs.kali.org/downloading/kali-linux-live-usb-install
  3. http://docs.kali.org/downloading/kali-linux-live-usb-persistence

Jeżeli obraz zajmuje 2GB a pendrive ma 8GB to 6GB pozostaje nieużywane. Zwyczajnie, marnuje się.

0

growisofs uzywalem do tej pory wlasnie ale ciekawi mnie dlaczego dd nie sprawdza sie podczas wypalania plyt
a podczas bootowalnych usb juz tak. Co dokładnie robią programy do wypalania np obrazow iso, ze bootowanie
działa na plytach? Wcześniej myślałem, że tj dd z pliku .iso kopiują dane sektor po sektorze i bezpośrednio na plyte.

0

Po co w ogóle formatować fat32 jeżeli i tak nadpiszemy to obrazem .iso

Nie wiem jak to działa w tym przypadku, ale nie wykluczone że obraz .iso jest przechowywany właśnie jako obraz, plik w ramach partycji FAT32.

0

Nie sprawdza się gdy instalujesz na u efi, ładnie mi nagrywa na USB obrazy ISO takie narzędzie jak imagwriter, isousb czy Multisystem.

0
Azarien napisał(a):

Po co w ogóle formatować fat32 jeżeli i tak nadpiszemy to obrazem .iso

Nie wiem jak to działa w tym przypadku, ale nie wykluczone że obraz .iso jest przechowywany właśnie jako obraz, plik w ramach partycji FAT32.

Wykluczone. przy kopiowaniu iso na usb przy pomocy dd robi się to z reguły tak dd if=/gentoo.iso of=/dev/sdb, gdzie /dev/sdb to jest surowy dysk. Czyli zapis następuje od 1 sektora. Skopiowanie samego iso na usb, nie sprawi, że usb będzie bootować. Obraz iso należy wcześniej przeorać np narzędziem isohybrid, który umożliwi doda do bootloadera funkcje bootowania z usb.

Gdy wykorzystujemy wyżej wspomnianą metodę kopiowania iso na pendrive, to wcześniejsze formatowanie mija się z celem, jako że dd tak czy siak nadpisze zarówno mbr jak i tablicę partycji.

0

Ten problem jest ciekawy.

Zawsze z programów się korzystało, ale tak low level spojrzeć, żeby to wytłumaczyć.

Musisz sobie obejrzeć w disasemblerze jakis program nagrywający, wtedy zrozumiesz najlepiej jak to działa i w każdym języku dasz radę to zaimplementować.

Tak zawsze możesz z narzędzi korzystać, co jest męczące bo trzeba uczyć się nazw programów/funkcji na pamięć, ale zwykle po prostu się nie zwraca na to uwagi, a tak się po prostu wie jak coś działa i nawet najebanym da się to z syntezować.

Low level odpowiedź by odpowiedziała na wszystkie informacje, ale mało kto to wie, a to by odpowiedziało na wszystkie pytania.
Musisz, albo czekać co niekiedy się okaże, że i tak będziesz musiał sam do tego dojść co w najlepszym przypadku i tak sam znajdziesz drogę żeby się dowiedzieć, algorytm zewnętrzny.

0

Właśnie niskopoziomowo chciałbym wiedzieć jak to wszystko działa. Ktoś mógłby podać jakieś
linki gdzie można nauczyć się więcej o bootowaniu, systemach plikow itp np jak stworzyć własny program
wypalający obrazy na cd/dvd/usb albo własny program ładowany podczas uruchamiania komputera.

0

To nie jest żadna tajemna wiedza. Poczytaj jak działa jakikolwiek bootloader, np isolinux, grub, masz nawet jego źródła.

P.S. żeby przygotować usb instalacyjny, nie trzeba dd. Wystarczy skopiować iso poleceniem cp, podając jako cel urządzenie. Zadziała szybciej niż dd.

0
  1. Systemy plików oraz różnica występująca pomiędzy nimi:
    http://wiki.osdev.org/ISO_9660
    Tutaj masz masę informacji:
    http://fy.chalmers.se/~appro/linux/DVD+RW/
    Link z man-page od growisofs
    Jak masz bardzo duże parcie na wiedzę to możesz obejrzeć kod źródłowy:
    http://fy.chalmers.se/~appro/linux/DVD+RW/tools/growisofs.c

  2. Kopia na przykład MBR:
    # dd if=/dev/sda of=./mbr1 bs=512 count=1
    Informacja dlaczego 512 Bajtów:
    https://pl.wikipedia.org/wiki/Master_Boot_Record
    Następnie można sobie go deassemblować:
    objdump -D -b binary -mi386 -Maddr16,data16 mbr1

1 użytkowników online, w tym zalogowanych: 0, gości: 1