Kérdés:
Hogyan lehet átméretezni egy képfájlt, mielőtt SD kártyára írna?
DrAl
2013-02-12 14:27:08 UTC
view on stackexchange narkive permalink

Új Raspbian képet próbáltam létrehozni egy másik kernellel (CAN támogatással) és a Python 3.3 telepítésével. Ahelyett, hogy mindezt a Raspberry Pi-n csináltam volna, úgy gondoltam, hogy érdekes lenne a számítógépen végrehajtani ( ezeket az utasításokat követve). Miután azonban a képet csatlakoztattam és készen álltam a használatra, gyorsan elfogyott a lemezterületem. Feltételezem, hogy ez azért van, mert a kép mérete csak éppen elég nagy, azzal a várakozással, hogy a felhasználó átméretezi a fájlrendszert, amint azt SD-kártyára írta.

Lehetséges átméretezni a képet kép- és fájlrendszer, mielőtt az SD-kártyára írnám, hogy több testreszabást tudjak végezni anélkül, hogy elfogyna a helyem?

[Ez a kérdés] (http://raspberrypi.stackexchange.com/q/499/40) valószínűleg segít.
Az @Jivings: mindezek a válaszok leírják, hogyan lehet átméretezni a képet **, miután ** be lett írva az SD-kártyára. Tudom, hogyan kell ezt megtenni; Érdekel, hogyan lehet átméretezni a képet **, mielőtt ** az SD-kártyára írnám.
Négy válaszokat:
Jivings
2013-02-12 15:08:54 UTC
view on stackexchange narkive permalink

A nyers képfájl átméretezése így történik. Tudom, hogy ostobán leegyszerűsítően hangzik, de működni fog.

Hozzon létre egy üres képet, olyan méretben, amellyel ki szeretné bővíteni az eredetit (az én példámban 5 GB-ot használok); code> dd if = / dev / zero of = / elérési út / a / temp_image bs = 1 count = 1 seek = 5G

Ezt egészítse ki az eredeti képhez:

  cat / path / to / temp_image >> /path/to/rasperrypi.img

A lemez végén lévő fájlrendszer átméretezése (általában ezt akarja) nagyobb):

  resize2fs -f /path/to/rasperrypi.img  

Kész! A lemezének most 5 GB-tal nagyobbnak kell lennie!

Ez tökéletesen hangzik, köszönöm: Ma este kipróbálom.
Most próbáltam ki, és amikor eljutok a resize2fs szakaszba (miután 1 GB-ot adtam hozzá a fájlhoz), "Bad magic number in super-block" -ot kapok, miközben megpróbálom megnyitni a 2012-12-16-wheezy-raspbian.img Couldn ' nem talál érvényes fájlrendszer szuperblokkot. " Van valami javaslat arra, hogy mit csinálok rosszul?
Úgy tűnik számomra, hogy ez egy olyan kérdés, hogy megpróbálom átméretezni a teljes képet (a / dev / sda megfelelője) a partíció helyett (a / dev / sda2 megfelelője). Ugyanakkor tévedhetek, és kipróbáltam még néhány dolgot, sikertelenül (például a partíció átméretezése az fdisk segítségével, ami úgy tűnik, hogy működik, de nem segít a fájlrendszer átméretezésében).
Oké, egy kis guglizással megtaláltam a választ az utolsó bitre: létre kellett hoznom a kép partíciójára mutató hurokeszközt. Ezt úgy csináltam, hogy megszereztem a második partíció kezdõ szektorát az `fdisk -l file.img`-ból (122880 volt), majd a` losetup --offset $ ((122880 * 512)) / dev / loop0 file.img` -ot. Ezután használhatnám a "resize2fs" alkalmazást a "/ dev / loop0" eszközön, és rendet tehetnék a "losetup -d / dev / loop0" paranccsal. Ha frissíti válaszát, hogy ez szerepeljen benne, akkor elfogadott válaszként jelölöm meg. Köszönöm, hogy jó irányba mutatsz.
A szükséges segítséget [itt] kaptam (http://varghese85-cs.blogspot.co.uk/2008/11/mouting-partitions-with-losetup.html).
Hm, az volt a benyomásom, hogy a parancsom csak átméretezi a végpartíció méretét. Azt hiszem, ez nem helyes ... Megnézem a linkjeit.
@DrAl Hé, kipróbáltam a megoldást a "resize2fs" használatával a / dev / loop0 oldalon, de kaptam egy kernelpánikot a rendszerindításkor, mondván, hogy a szuperblokk és a partíció mérete nem egyezik: "A fájlrendszer mérete (a szuperblokk szerint) A készülék fizikai mérete 458240 blokk` Találkozott már ilyesmivel?
Greg
2014-01-04 18:09:32 UTC
view on stackexchange narkive permalink

Ez a fenti és a számomra bevált válaszok szintézise - készítsen biztonsági másolatot a képéről, ha hibázik:

Először növelje a képfájlt (itt 1 GB-ot adunk hozzá a vége):

  csonka -s + 1G ./image.img

Következő hozzárendeli az egész képet hurokeszközként, hogy a partíciós tábla

  sudo losetup / dev / loop0 ./image.img

A későbbi hivatkozásokhoz engedje meg:

  sudo fdisk -l / dev / loop0  

A kimenet a következőképpen néz ki:

  Disk / dev / loop0: 2962 MB, 2962227200 bájt255 fej, 63 szektor / sáv, 360 henger, összesen 5785600 szektor Egységek = 1 * 512 = 512 bájt szektorok Szektorméret (logikai / fizikai): 512 bájt / 512 bájt I / O méret (minimum / optimális): 512 bájt / 512 bájt Lemezazonosító: 0x000c4661 Eszközindítás kezdete Blokkok Id Rendszer / dev / loop0p1 8192 122879 57344 c W95 FAT32 (LBA) / dev / loop0p2 122880 5785599 2831360 83 L inux  

Most újra elkészítjük az utolsó partíciót törléssel, majd újra létrehozzuk ugyanabban a kezdő helyen, ugyanabban a típusban, de más véghelyen. Tehát jegyezze fel a loop0p2 "Start" oszlopát (2. partíció - a Linux partíció) - később használjuk - az 122880-at.

  sudo fdisk / dev / loop0  

Írja be a következőket - biztonságosan beléphetnek - semmi sem történik véglegesen, amíg nem olvassa el a következő magyarázatomat:

  1. p
  2. d
  3. 2
  4. n
  5. p
  6. 2
  7. 122880
  8. csak nyomja meg az Enter billentyűt fogadja el az alapértelmezett
  9. p

1. lépés - nyomtassa ki az aktuális táblázatot. 2-3. Lépés - törölje a 2. partíciót, a 4-8. Lépés - hozza létre a 2. partíciót új végponttal (az alapértelmezett a kép vége), 9. lépés - nyomtassa ki az új táblázatot.

Tételezzük fel, hogy az újonnan kinyomtatott táblázat megegyezik az eredeti táblázattal, kivéve a Végérték és a Blokkok értékét (azaz megváltozott a méret), amelyet készen áll az elköteleződésre.

Írja be a w a módosítás végrehajtásához, majd a kilépéshez írja be a q parancsot.

Törölheti azt a visszacsatoló eszközt, a második partícióhoz elkészítünk egy másikat. Ne feledje a fent említett és használt kezdeti eltolást - újra felhasználjuk:

  sudo losetup -d / dev / loop0 # törölje a régi ciklus beállításait sudo losetup -o $ ((122880 * 512 )) / dev / loop0 ./image.img

Ez létrehoz egy új leképezést a / dev / loop0 -ra, amely csak a 2. partícióra mutat - az 512 hivatkozás az első fdisk kimenetben látható szektorméret.

Most méretezze át a partíciót a rendelkezésre álló hely kitöltésével:

  sudo e2fsck - f / dev / loop0sudo resize2fs / dev / loop0  

Kész - most takarítson:

  sudo losetup -d / dev / loop0  
köszönöm ... a fenti utasítások nem működtek nálam, de ez sikerült. Figyelmeztetést kaptam a partíciós tábla megírásakor: "" Parancs (m segítségért): wA partíciós tábla módosult. Az ioctl () hívása a partíciós tábla újbóli olvasására. A partíciós tábla újbóli olvasása sikertelen: Érvénytelen argumentum kernel még mindig a régi táblázatot használja. Az új táblázatot a következő újraindításkor, vagy a partprobe (8) vagy a kpartx (8) futtatása után fogjuk használni. "Csak nem vettem figyelembe, és ez rendben volt.
Kiváló! Te vagy az egyetlen, aki helyes választ adott! Köszönöm.
Markus
2014-02-19 20:11:32 UTC
view on stackexchange narkive permalink

Azok számára, akiknek az Oracle VM VirtualBox fut, meglehetősen egyszerű.

Windows gépen a dolgok a következők:

input.img itt található a kép, amelyet csökkenteni kell, és a output.img a végső kép - ebben a példában 7000 MB méretű.

  ECHO "== ==================================================== ===================== "ECHO" input.img = > output.img "ECHO" =============== ==================================================== ======== "DEL input.vdiDEL output.vdiDEL output.imgECHO" =============================== =========================================== "" C: \ Program Files \ Oracle \ VirtualBox \ VBoxManage "convertfromraw input.img input.vdi -format VDI --variant StandardECHO ============================= ============================================== "C: \ Program Files \ Oracle \ VirtualBox \ VBoxManage "createhd --filename output.vdi --size 7000 - format VDI --variant StandardECHO ========================== ======================== ========================= "C: \ Program Files \ Oracle \ VirtualBox \ VBoxManage" clonehd input.vdi output.vdi --existingECHO == ==================================================== ===================== "C: \ Program Files \ Oracle \ VirtualBox \ VBoxManage" clonehd output.vdi output.img --format RAW  

Remélem, ez segít egy kicsit.

Köszönöm ezt a megoldást, nagyon ravasz. Ez az egyetlen, amit találtam, amely ingyenes és tökéletesen működik a Windows rendszeren. Volt néhány problémám a 16 GB-os kártyákkal, amelyek nem voltak teljesen azonos méretűek, és át kellett méretezni a képemet.
Kernel pánik hibát kaptam. `Kernelpánik - nincs szinkronizálás: VFS: Nem lehet rootf-okat felcserélni az ismeretlen blokkra (179,2)"
Vegye figyelembe, hogy ez csonkolja a képet - elveszíti az adatokat, ha a 7000 MB-os jel felett van - a parancsok nem figyelmeztetnek és nem panaszkodnak.
Jonas Stumph Stevnsvig
2015-10-04 17:28:02 UTC
view on stackexchange narkive permalink

A nyers képfájl átméretezése így történik. Tudom, hogy ostobán leegyszerűsítően hangzik, de működni fog.

Hozzon létre egy üres képet, olyan méretben, amellyel ki szeretné bővíteni az eredetit (az én példámban 5 GB-ot használok);

  dd if = / dev / zero of = / elérési út / a / temp_image bs = 1 count = 1 seek = 5G  

Ezt egészítse ki az eredeti képhez:

  cat / path / to / temp_image >> /path/to/rpi.img

A következő átméretezi a partíciót és a fájlrendszert. Először kapja meg a partíció eltolását;

  fdisk -l /path/to/rpi.img

Eredmények egy ilyen táblázatban:

  Device Boot Start Végszektorok mérete Id Typerpi.img1 8192 122879 114688 56M c W95 FAT32 (LBA) rpi.img2 1122880 8447999 8325120 4G 83 Linux  

Vegye figyelembe a második partíció kezdési eltolását

  losetup --offset $ (((122880 * 512)) / dev / loop0 /path/to/rpi.imge2fsck -f / dev / loop0resize2fs -f / dev / loop0  

Végül válassza le / dev / loop

  losetup -d / dev / loo p0  

Kész! A lemezének most 5 GB-tal nagyobbnak kell lennie!



Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...