Van egy diszkem, amin egy megadott offsetnél található egy fájlrendszer. Ezt a fájlrendszert a korábbiakban a loopback device "offset" (-o) opciójának segítségével csatoltam fel, viszont a loopback device óriási overheaddel rendelkezik, ezért dög lassú volt.
Akkor itt a fórumon azt tanácsoltátok, hogy a loopback device helyett használjak device mappert, és annak a "linear" opcióját.
Ez sebesség szempontjából bevált, viszont lockolja a forrás eszközt. Magyarul, ha a /dev/sda egy területéről létrehozok egy linear device mapper eszközt, akkor utána a /dev/sda-ról más (nem átfedő!) partíciókat sem tudok felmountolni, nem tudok rajtuk mkfs-t futtatni, stb. mert azt mondja, hogy az eszköz használatban van.
(/dev/sda1 is apparently used by the system)
Van-e valami megoldás ezen lockolás kihagyására/megkerülésére/megszüntetésére?
Kösz!
- 7074 megtekintés
Hozzászólások
"Magyarul, ha a /dev/sda egy területéről létrehozok egy linear device mapper eszközt"
Ezt részletezd már kérlek, nem teljesen értem.
Jómagam évek óta használok titkosított partíciókat, fájlokat. Legjobban a cryptsetup vált be. Gond nélkül megy a le-felcsatolás. Van, hogy 1 lemezen belül több titkosított partíció esetén is.
- A hozzászóláshoz be kell jelentkezni
Van mondjuk a /dev/sda, amin van egy fájlrendszer. A kezdő offsetje mondjuk 60 GB-nál van (125829120-s szektor), és 14 GB a mérete (29360128 szektor)
echo "0 29360128 linear /dev/sda 125829120" | dmsetup create adatok
Ezek után a fájlrendszert remekül elérem, fel tudom csatolni:
mount /dev/mapper/adatok /mnt
Ellenben, a forrás diszen ilyenkor nem tudok felmountolni partíciókat:
# mount /dev/sda1 /mnt2
mount: /dev/sda1 already mounted or /mnt2 busy
Illetve fájlrendszert sem tudok csinálni:
# mkfs.ext4 /dev/sda1
/dev/sda1 is apparently in use by the system; will not make a filesystem here!
- A hozzászóláshoz be kell jelentkezni
mkfs? Mintha azt írtad volna, hogy nem nyúlhatsz hozzájuk :-P
- A hozzászóláshoz be kell jelentkezni
> mkfs? Mintha azt írtad volna, hogy nem nyúlhatsz hozzájuk :-P
Bah, koncentrálj a probléma lényegére :)
- A hozzászóláshoz be kell jelentkezni
A diszken miért nincsenek partíciók?
- A hozzászóláshoz be kell jelentkezni
Vannak. MBR partíciós tábla, és benne foglalt a 4 primary partíció. Ezért kell trükköznöm, és egyes adatokat partícionálatlan területre elhelyeznem.
- A hozzászóláshoz be kell jelentkezni
Akkor csinálj logikait is 1 elsődleges rovására. Logikaból több is lehet.
- A hozzászóláshoz be kell jelentkezni
De azért 1-et be kell áldozni az elsődlegesekből.
- A hozzászóláshoz be kell jelentkezni
A 4 elsődleges partícióhoz nem nyúlhatok hozzá.
- A hozzászóláshoz be kell jelentkezni
Pedig őszintén jobb lenne az extend partíciót választani.
De akkor csináld fordítva. A data-mapper rétegen keresztül kezelheted a partíciókat.
Probléma
# dmsetup create data5 --table \
'0 10000 linear /dev/disk/by-id/usb-USB_Flash_Disk_AA04012700007562-0:0 50000'
# dmsetup create data6 --table \
'0 10000 linear /dev/disk/by-id/usb-USB_Flash_Disk_AA04012700007562-0:0 60000'
# mkfs.ext3 /dev/sdd2
mke2fs 1.42.8 (20-Jun-2013)
/dev/sdd2 is apparently in use by the system; will not make a filesystem here!
# mount /dev/sdd2 /mnt/
mount: /dev/sdd2 already mounted or /mnt/ busy
Megoldás
# fdisk -l /dev/sdd
Device Boot Start End Blocks Id System
/dev/sdd1 2048 9999 3976 83 Linux
/dev/sdd2 10000 19999 5000 83 Linux
/dev/sdd3 20000 29999 5000 83 Linux
/dev/sdd4 30000 49999 10000 83 Linux
# dmsetup create data1 --table \
'0 7952 linear /dev/disk/by-id/usb-USB_Flash_Disk_AA040-0:0 2048'
# dmsetup create data2 --table \
'0 10000 linear /dev/disk/by-id/usb-USB_Flash_Disk_AA040-0:0 10000'
# dmsetup create data3 --table \
'0 10000 linear /dev/disk/by-id/usb-USB_Flash_Disk_AA040-0:0 20000'
# dmsetup create data4 --table \
'0 20000 linear /dev/disk/by-id/usb-USB_Flash_Disk_AA040-0:0 30000'
# mkfs.ext3 /dev/mapper/data1
# mkfs.ext3 /dev/mapper/data2
# mkfs.ext3 /dev/mapper/data3
# mkfs.ext3 /dev/mapper/data4
# mount /dev/sdd1 /mnt/
mount: /dev/sdd1 already mounted or /mnt/ busy
# mount /dev/mapper/data1 /mnt ; echo $?
0
De azért az extend partíciót, mint megoldást, ne vesd el.
- A hozzászóláshoz be kell jelentkezni
Kicsit elvesztem, most azt mondod, hogy az amúgy meglevő 4 elsődleges partíciót *ne* /dev/sdbX néven érje el, hanem először azokhoz is legyen device mapperen keresztüli hozzáférés, és azokon az eszközfájlokon keresztül?
- A hozzászóláshoz be kell jelentkezni
Igen, ezt mondja, ha jól értem.
Van valamilyen előre gyártott eszköz, ami képes a partíciós tábla alapján 1:1 megfelelő device mapper eszközöket csinálni, vagy nekem kellene parse-olni mondjuk az fdisk kimenetét, vagy nyersen feldolgozni a partíciós tábla adatát?
- A hozzászóláshoz be kell jelentkezni
igen, azt mondom.
nem tudom van -e. én kézzel adtam be - nem véletlen 10k-sok.
de awk pont jó. quick-dirty:
# fdisk -l /dev/sdc | awk '/^\/dev\/sdc/ {d=$1; gsub("/","_",$1);\
printf("dmsetup create data%s --table \0470 %d linear %s 0\047\n", $1, $4*2, d)}'
dmsetup create data_dev_sdc1 --table '0 7952 linear /dev/sdc1 0'
dmsetup create data_dev_sdc2 --table '0 10000 linear /dev/sdc2 0'
dmsetup create data_dev_sdc3 --table '0 10000 linear /dev/sdc3 0'
dmsetup create data_dev_sdc4 --table '0 20000 linear /dev/sdc4 0'
print helyett system-mel is
- A hozzászóláshoz be kell jelentkezni
> Pedig őszintén jobb lenne az extend partíciót választani.
A primary partícióban lakó szoftvert harmadik féltől kapom fájlrendszer image formájában, nem támogatja az extended/logikai partícióból való használatot.
- A hozzászóláshoz be kell jelentkezni
Javasoltad már nekik, hogy más célra használják a sz@rukat? :)
- A hozzászóláshoz be kell jelentkezni
És? :) Átrakod logikaira és kész :)
- A hozzászóláshoz be kell jelentkezni
Azert a konverzio nem ennyire egyertelmu sajnos.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
En mar regota hasznalok hasonlo setupot ( + cryptoval + metadata mashol tarolva) loopback-el es bevallom oszinten nem tunt fel, hogy lassu volna, de most felcsigaztal :)
Tekintve a dolog egyszeruseget meglepett, hogy nagy az overhead. Csinaltal esetleg merest?
- A hozzászóláshoz be kell jelentkezni
Itt az eredeti szál, kezdd azzal, hogy ezt elolvasod.
- A hozzászóláshoz be kell jelentkezni
Koszonom, megtalaltam benne, amit kerestem.
- A hozzászóláshoz be kell jelentkezni