Fórum Root.cz

Hlavní témata => Software => Téma založeno: zjh 21. 11. 2017, 22:44:08

Název: Připojení souboru jako disk
Přispěvatel: 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.
Název: Re:připojení souboru jako disk
Přispěvatel: mhepp 21. 11. 2017, 23:15:25
Pomocí losetup:
Kód: [Vybrat]
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.
Název: Re:připojení souboru jako disk
Přispěvatel: JardaP . 21. 11. 2017, 23:18:16
man mount, odstavec THE LOOP DEVICE
Název: Re:připojení souboru jako disk
Přispěvatel: Fantomas 21. 11. 2017, 23:27:02
S rootovskymi pravy "mount -o loop /cesta/soubor /mnt/adresar"
Název: Re:připojení souboru jako disk
Přispěvatel: zjh 21. 11. 2017, 23:40:51
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...
Název: Re:připojení souboru jako disk
Přispěvatel: mhepp 22. 11. 2017, 12:24:04
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"
Název: Re:připojení souboru jako disk
Přispěvatel: Pavouk106 22. 11. 2017, 12:36:06
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.
Název: Re:připojení souboru jako disk
Přispěvatel: mhepp 22. 11. 2017, 14:53:23
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... ;)
Název: Re:připojení souboru jako disk
Přispěvatel: zjh 22. 11. 2017, 16:17:04
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 :-))
Název: Re:připojení souboru jako disk
Přispěvatel: zjh 22. 11. 2017, 16:20:34
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 :-)
Název: Re:Připojení souboru jako disk
Přispěvatel: nobody(ten pravej) 08. 12. 2017, 17:03:30
btw: loop zarizeni pro oddily v souboru/image vytvari i primo k tomu urceny nastroj kpartx (https://www.root.cz/man/8/kpartx) :-)