mount -o offset ale s ntfs-3g

mount -o offset ale s ntfs-3g
« kdy: 16. 08. 2022, 16:55:31 »
Mám takový problémek: vytvořil jsem image celého  (vč.table) externí  disku  na  nějakou partition na hlavním disku.
Postupuji podle tohoto návodu.
První partition se mi daří připojit: mount -o  offset=$((512*2048)) /dev/sda3 p1, jelikož je to FAT32.
Jenže další jsou ntfs. a mount se řeší přes `ntfs-3g`  A  option offset nemá. A tedy nevím , jak ntfs-3g vnutit offset, viděl partition od správné pozice.
Potíž je , že to není klasický linux, ale nějaký embedded bastl.

Existuje nějaká oklika, jak třeba vytvořit přes losetup nová blockdev, která  budou "zoffsetěná"? Ale jestli tomu dobře rozumím, losetup nepřijme blockev jako "input", nýbrž jen fajly.
 že bych pak zvolal mount /dev/loop3 p2

Například findnt ani lsblk,lsb_release,systemctl,lscpu tu není. losetup nezná argument -P.
« Poslední změna: 16. 08. 2022, 16:58:56 od Ħαℓ₸℮ℵ ␏⫢ ⦚ »


dmsetup chyba "create ioctl on loopX failed:
« Odpověď #1 kdy: 16. 08. 2022, 17:19:25 »
A toto mi hlásí:
[/share] #  dmsetup create  --table "52635648 113423360 linear /dev/sda3"  loop3
device-mapper: create ioctl on loop3 failed: Device or resource busy
Command failed
[/share] #  dmsetup create  --table "52635648 113423360 linear /dev/sda3"  loop66
device-mapper: reload ioctl on loop43 failed: Invalid argument
Command failed
(analogicky echo "123... sda3" | dmsetup create nazev)

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:mount -o offset ale s ntfs-3g
« Odpověď #2 kdy: 16. 08. 2022, 17:30:50 »
Kdybys nebyl linej, tak zjistis ze veci normalne funguji, nevim kde beres info ze losetup nezere block device:
Kód: [Vybrat]
# losetup -f -o $(( 2048 * 512 )) /dev/sdb
# losetup -l
NAME       SIZELIMIT  OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0         0 1048576         0  0 /dev/sdb    0     512

A pokud ti to ta platforma nedovoli, tak si uprav partition table na danem disku, abys oddelil tu systemovou oblast od samotne partisny (tj. ze sda3 udelej sda3+sda4 a mountuj pak sda4)

losetup mount device s offsete
« Odpověď #3 kdy: 16. 08. 2022, 17:53:03 »
Aha, už mi to šlo přes losetup. losetup -o $((26949451776))  /dev/loop77  /dev/sda3 (Vycházel jsem nelogicky z toho, že naopak mount nejde použít s mount /cesta/k/souboru )
Akorát neumí --size-limit, ale co se dá dělat.
Dokonce  jsem si ušetřil idiotské počítání 512*.
parted /dev/sda3 unit b print

Mimochodem, ta on-the fly konverze tabulky oddílů by se udělala jak (že to monoliticky vypadající sda3 rozparsuje na jednotlivé partition a ty to "přičte" k nadřazené tabulce /dev/sda)? Umí to i třeba takový gparted nebo gnome-disks? Je na to nějaká utilita, která to zvládne, než abych musel nějak manuálně  dělat alchymii s parted a doufat, že neudělám někde chybu a omylem nesmažu tabulku nebo nepřepíšu stávající oddíly?


... Mezitím mě systém fóra odhlásil a  při přihlášení mě přesměroval na psaní nového tématu místo do odpovědi.
« Poslední změna: 16. 08. 2022, 17:56:53 od Ħαℓ₸℮ℵ ␏⫢ ⦚ »

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:mount -o offset ale s ntfs-3g
« Odpověď #4 kdy: 16. 08. 2022, 22:12:28 »
Tohle fakt není potřeba dělat takhle složitě, normálně "kpartx -a soubor.img", vytvoří to /dev/mapper/loop0p1 až N namapované podle partitions v image.


RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:losetup mount device s offsete
« Odpověď #5 kdy: 16. 08. 2022, 23:19:57 »
Dokonce  jsem si ušetřil idiotské počítání 512*.
parted /dev/sda3 unit b print

parted nepouzivam, jedu klasicky fdisk -l /dev/sdx a to pise v sektorech, proto je tam *512. A opisovat mensi cislo zpameti je snazsi :)

Pokud tam ale nemas vzorec tak nepotrebujes $(( a )). Bez vzorce to ma smysl napr. na prevod z hexa zapisu jako $(( 0xABCD ))

Re:losetup mount device s offsete
« Odpověď #6 kdy: 17. 08. 2022, 22:16:59 »
Dokonce  jsem si ušetřil idiotské počítání 512*.
parted /dev/sda3 unit b print

parted nepouzivam, jedu klasicky fdisk -l /dev/sdx a to pise v sektorech, proto je tam *512. A opisovat mensi cislo zpameti je snazsi :)

Pokud tam ale nemas vzorec tak nepotrebujes $(( a )). Bez vzorce to ma smysl napr. na prevod z hexa zapisu jako $(( 0xABCD ))
(()) byl relikt předchozího příkazu . nechci teď vařit z vody, ale pro losetup používám větší čísla ("násobená 512"), zatímco -o offset bere menší čísla... Každopádně na zkopírování čísel mi stačí označit a Ctrl Shift V