USB apróságocska :}
Jun. 17th, 2021 01:58 amMost elmesélem, hogyan lehet indítható USB-t létrehozni, akár használtabb, gyengébb USB-drive-ból is. Mindennemű extra, csillivilli Unetbootin vagy akármilyen más extra alkalmazás felhasználása nélkül, pusztán az egyszerű, parancssoros dd alkalmazásával.
A páciens: Kingston Data Traveler (USB 3.0) típusú, 15 GB méretű pendrájv.
Bevallom: az első néhány kísérletem kudarcra ítéltetett. Lépésről lépésre megtanultam, hogyan kell a dd parancsot használni.
Mielőtt használnád, erősen ajánlott, hogy futtasd le - júzerként - az lsblk parancsot, méghozzá úgy, hogy a feláldozásra szánt USB nincs benne a gépedben. Ez a parancs ugyanis kilistázza az összes, a gépre felmountolt perifériát.
Jól nézd meg az lsblk kimenetét, ezután dugd be az USB-det a megfelelő helyre (rossz, aki rosszra gondol), és nyomj a terminálon egy felfelé nyilat, majd egy Entert. (Persze begépelheted újra is az lsblk-t, de szerintem nem én vagyok ehhez túl lusta :Đ.)
Nézd meg most is a kimenetet, ugyanolyan jól, mint az imént.
Észleld a különbséget. Valószínűleg /dev/sdb vagy /dev/sdc lesz a létszámfeletti meghajtód, amely az előző alkalommal nem volt jelen; valószínűleg lesz rajta valamiféle partíció (sdb1 vagy ilyesmi várható), és valószínű, hogy fel is lesz mountolva valahová (valószínűleg /media/júzerneved/KINGSTON vagy akármy más).
Ez az eszköz - amelyet az első lsblk során nem láttál - lesz az, amelyet teljes mértékben szét fogunk barmolni. Teljes mértékben, mondom, tehát ha akármilyen adat van a pendrájvon, amelyre szükséged lesz a későbbiekben, akkor azt most, azonnal, rögtön mentsd át valahová, mert a továbbiakban nincs visszaút! A dd nem fogja megkérdezni menet közben, hogy tényleg, de biztosan komolyan le akarod zúzni? Adottnak veszi, hogy ha használod, akkor teszed ezt lezúzási célzattal.
Ha esetleg még nem tetted volna meg, akkor most töltsd le kedvenc Linux-disztribúciódnak kedvenc *.iso imázsát a kedvenc tükörszerveredről.
És most, válts gyökérjogokra - sudo is lehet, su - is, amelyiket kedved tartja használni -, és először zúzz le minden adatot a pendrájvról. Roppant kreatív a módszer: teleírod a devnulla tartalmával.
dd if=/dev/zero of=/dev/sdb
Nagyon kényszeresen és hisztérikusan kell ügyelned arra, hogy mi az if és mi az of.
Ne cseréld fel a kettőt, mert attól nagyon rossz lesz Neked.
if == Input File, ez az, amit másolsz. Ez kerül balra. If. Input.
of == Output File, ez az, ahová másolsz. Ez van jobbra. O, mint output.
Figyelj arra itt, hogy - még ha láttál is az lsblk-nál partíciót az USB-drájvon belül, ne ezt add meg of-nak, hanem az egész drájvot! Tehát NE /dev/sdb1 vagy /dev/sdc3 vagy akármy, hanem /dev/sdb vagy /dev/sdc (vagy amilyen néven észlelte a rendszered a pendrájvot) legyen itt. Az egész hóbelevancot lezúzzuk, és semmy más nem lesz az egész pendrive-on, sem partíciók, sem semmy, csakis a telepítő/live anyagh. Punktum.
Ezután a követkőző parancsot kalapáld be:
dd bs=4M if=/home/júzerkönyvtárad/valahová/bisztos/elmentetted/az/isofilét.iso of=/dev/sdb conv=fdatasync
A bs - block size - opció azt határozza meg, hogy milyen méretű darabonként olvassa a dd az input filét és írja ki az output egységre. 4MB azért lehet ésszerű választás - ha mondjuk véletlenül Neked is Debianod van, amely ext4 filerendszert használ -, mert ez egész számú többszöröse a 4 KB-nak, és ez az ext4 filérendszer blokkmérete. Így egy hatékony írás-olvasás arányt kaphatunk.
conv=fdatasync: ha nem akarsz sem barátságtalan hibaüzeneteket kapni a kerneltől, amikor a mívelet után dmesg-re adod a fejedet, sem nem szeretnél egy tönkrevert, ám indíthatatlan USB-vel gazdagabb lenni, akkor ez az opció elkerülhetetlen. (Tudok valakiről, aki így járt, mielőtt felfedezte ezt az opciót itten, és hitt azoknak, akik azt mondták: ennek az az oka, hogy az USB már régi és nem jó. Ennek eredményeként, miután beszerzésre került egy újabb, extrásabb pendrive, most lett egy indítható pendrive-om, a régi, továbbá van egy vadiúj, amelyet semmyre nem használtam még.)
A conv paraméter azt szabályozza, hogyan konvertálja a dd az inputfilét, miközben az output eszközre írja. Az fdatasync opció biztosítja, hogy az írás során az átmeneti pufferelések helyesen - és sorrendhelyesen - történjenek, és befejeződjenek, még mielőtt a másolási folyamatot ünnepélyesen késznek nyilvánítaná. (Ha a hozzátartozó mese is érdekel, akkor olvasgathatsz a kernel disc caching képességéről, így jobban megértheted, hogyan csinálja ezt, de enélkül is véghez viheted ezt a dd-s cuccot.)
(Ha azt akarod, hogy menetközben még dumáljon is, akkor a végére hozzábiggyesztheted a status=progress opciót is. Enélkül is megcsinálja, csak akkor befogja az arcát.)
Készülj fel arra, hogy a dd kicsit időigényesen dolgozik, ez nem annak jele, hogy valami gallyra ment!
Ha bevégeztetett, akkor nyomj egy dmesg-t - ez ki fogja írni a kernel üzeneteit -, és szerencsés esetben nem találsz semmilyen hibaüzenet.
Ezután megpróbálkozhatsz azzal, hogy tényleg indítható-e.
Én nagyon örültem, mert a régi, és mások által használhatatlannak vélt pendrive működött.