Fórum Root.cz
Hlavní témata => Software => Téma založeno: zjh 21. 11. 2017, 22:44:08
-
Zdravím, potřeboval bych drobnou radu. Mám soubor vytvořený z SD karty /dev/sdj pomocí příkazu dd a rád bych jej připojil jako disk. Je to nějakým jednoduchým způsobem proveditelné?
Díky za odpovědi.
-
Pomocí losetup:
losetup -P -f soubor
zpřístupníš soubor jako blokové zařízení /dev/loopX a parametr -P zajistí vyvoření patřicných zařízení pro případné oddíly, ty pak budou jako /dev/loopXpY.
-
man mount, odstavec THE LOOP DEVICE
-
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
-
Díky všem za ryché reakce přes trošku UTFG dotaz. Bohužel mi to právě s tím připojováním jako loop hlásilo chybu, že připojuji celý disk místo oddílu. Ale ten losetup to vyřešil úplně perfektně. Bohužel jsem ho neznal...
-
Takhle by t o samozřejmě také slo, ale musel by ten obraz obsahovat přímo filesystém. Pokud by obsahoval i oddíl, tak by to (za mne teoreticky) také šlo, neboť můžeš použít parametr offset, který se mi ale nikdy nepovedlo dobře spočítat/najít (moje blbost, vím). Na druhou stranu, proč byh se tím zabýval, když máme losetup.
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
-
Takhle by t o samozřejmě také slo, ale musel by ten obraz obsahovat přímo filesystém. Pokud by obsahoval i oddíl, tak by to (za mne teoreticky) také šlo, neboť můžeš použít parametr offset, který se mi ale nikdy nepovedlo dobře spočítat/najít (moje blbost, vím). Na druhou stranu, proč byh se tím zabýval, když máme losetup.
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
Offset spočteš podle počtu bloků začátku prvního oddílu * velikost bloku. Mě se to takhle v minulosti povedlo :-) Ale losetup je dobré znát. Díky za info.
-
Takhle by t o samozřejmě také slo, ale musel by ten obraz obsahovat přímo filesystém. Pokud by obsahoval i oddíl, tak by to (za mne teoreticky) také šlo, neboť můžeš použít parametr offset, který se mi ale nikdy nepovedlo dobře spočítat/najít (moje blbost, vím). Na druhou stranu, proč byh se tím zabýval, když máme losetup.
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
Offset spočteš podle počtu bloků začátku prvního oddílu * velikost bloku. Mě se to takhle v minulosti povedlo :-) Ale losetup je dobré znát. Díky za info.
Teorii znám, samozřejmě jsem takhle počítal, ale začátek jsem nenašel. Proč? To už nevím. Místo toho jsem objevil losetup, který to umí udělat za mne... ;)
-
Takhle by t o samozřejmě také slo, ale musel by ten obraz obsahovat přímo filesystém. Pokud by obsahoval i oddíl, tak by to (za mne teoreticky) také šlo, neboť můžeš použít parametr offset, který se mi ale nikdy nepovedlo dobře spočítat/najít (moje blbost, vím). Na druhou stranu, proč byh se tím zabýval, když máme losetup.
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
Tak ten výpočet/hledání je na tom právě to nejjednodušší (ať přispěju taky něčím). Pro klasický obraz disku se to najde hned na začátku v prvním bloku (prefix 0x1BE + 8, pro další primární oddíly analogicky 0x1CE, 0x1DE, 0x1EE), kde bývá hodnota 0x800. Ta se musí vynásobit velikostí bloku 512B (0x200) a vyjde nějakých 0x100000 Teď jsem to na zkoušku použil přímo v tom hexa tvaru a funguje. Jinak kde je to vlastně uložené je popsané na Wikipedii, odkud jsem čerpal ty prefixy:
https://en.wikipedia.org/wiki/Master_boot_record#Sector_layout
https://en.wikipedia.org/wiki/Master_boot_record#Partition_table_entries
Obecně se to, co mám zkušenosti s FAT souborovým systémem, ani nemusí hledat. On totiž hned na začátku má napsaný text, podle kterého je poznat, kde začíná. Takže stačí otevřít v hexa editoru a trošku poscroolovat. Text s typem souborového systému je na řádku s příslušnou adresou. (Třebas Vám to trošku pomůže, když už jste takhle rychle pomohl Vy mi :-))
-
Takhle by t o samozřejmě také slo, ale musel by ten obraz obsahovat přímo filesystém. Pokud by obsahoval i oddíl, tak by to (za mne teoreticky) také šlo, neboť můžeš použít parametr offset, který se mi ale nikdy nepovedlo dobře spočítat/najít (moje blbost, vím). Na druhou stranu, proč byh se tím zabýval, když máme losetup.
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
Tak ten výpočet/hledání je na tom právě to nejjednodušší (ať přispěju taky něčím). Pro klasický obraz disku se to najde hned na začátku v prvním bloku (prefix 0x1BE + 8, pro další primární oddíly analogicky 0x1CE, 0x1DE, 0x1EE), kde bývá hodnota 0x800. Ta se musí vynásobit velikostí bloku 512B (0x200) a vyjde nějakých 0x100000 Teď jsem to na zkoušku použil přímo v tom hexa tvaru a funguje. Jinak kde je to vlastně uložené je popsané na Wikipedii, odkud jsem čerpal ty prefixy:
https://en.wikipedia.org/wiki/Master_boot_record#Sector_layout
https://en.wikipedia.org/wiki/Master_boot_record#Partition_table_entries
Obecně se to, co mám zkušenosti s FAT souborovým systémem, ani nemusí hledat. On totiž hned na začátku má napsaný text, podle kterého je poznat, kde začíná. Takže stačí otevřít v hexa editoru a trošku poscroolovat. Text s typem souborového systému je na řádku s příslušnou adresou. (Třebas Vám to trošku pomůže, když už jste takhle rychle pomohl Vy mi :-))
Omlouvám se za překlep, sed s/hledat/počítat/g předchozí_příspěvek :-)
-
btw: loop zarizeni pro oddily v souboru/image vytvari i primo k tomu urceny nastroj kpartx (https://www.root.cz/man/8/kpartx) :-)