Multiboot telepítő pendrive készítése (Linux+Windows)

 ( gergelykiss | 2019. január 12., szombat - 12:20 )

DR (disaster recovery) szituációra való felkészülés jegyében készítettem egy "svájcibicska" pendrive-ot, amivel a szervereinken használt OS-ek éles helyzetben gyorsan, hardverfüggetlen módon és ahol csak lehet, működő netkapcsolat nélkül is telepíthetők.

A pendrive GRUB2-t használ bootloaderként, az univerzális működést az MBR és az EFI boot együttes használata biztosítja.

A pendrive-ról az alábbi OS-eket lehet telepíteni:

  • CentOS 6 és 7
  • Debian Jessie és Stretch
  • Windows Server 2008 R2 / 2012 / 2016
  • +1 "bónusz" image: Memtest86 V4

A "készre főzött" image-et sajnos nem tudom megosztani, egyfelől a mérete, másfelől a licenckulcsot beégetve tartalmazó WinServer telepítők miatt, viszont írtam egy részletes HOWTO-t, ami alapján bárki el tudja készíteni magának a pendrive-ot.

Hozzávalók:

  • 1 db kellően nagy méretű pendrive (én 32 GB-osat használtam, de az OS-ek számának csökkentésével elég lehet egy 8 GB-os is)
  • 1 db működő Linux rendszer (a HOWTO Fedora 27-tel készült)
  • 1 db Windows 10 rendszer a Windows telepítők hegesztéséhez
  • Telepítő ISO-k CD vagy DVD kivitelben
  • Kb. 1 órányi időráfordítás

Elkészítés:

1. Partícionálás (32 GB-os pendrive esetén):

fdisk /dev/sdX

## 1. Windows telepítőknek NTFS partíció, 15 GB - mindenképp első helyen kell lennie, mert a Win nem kezeli (jól) a partícionált pendrive-okat!
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-60555263, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-60555263, default 60555263): +15G

Created a new partition 1 of type 'Linux' and of size 15 GiB.

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 7
Changed type of partition 'Linux' to 'HPFS/NTFS/exFAT'.

## 2. BOOT partíció - FAT16, 100MB, Boot flag ON
Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (31459328-60555263, default 31459328): 31459328
Last sector, +sectors or +size{K,M,G,T,P} (31459328-60555263, default 60555263): +100M

Created a new partition 2 of type 'Linux' and of size 100 MiB.

Command (m for help): a
Partition number (1,2, default 2): 2

The bootable flag on partition 2 is enabled now.

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 6

Changed type of partition 'Linux' to 'FAT16'.

## 3. ISO fájlok tárolására dedikált EXT4 partíció, a fennmaradó összes szabad kapacitás
Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 
First sector (31664128-60555263, default 31664128): 
Last sector, +sectors or +size{K,M,G,T,P} (31664128-60555263, default 60555263): 

Created a new partition 3 of type 'Linux' and of size 13,8 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

## Így nézünk ki:
Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdb1           2048 31459327 31457280   15G  7 HPFS/NTFS/exFAT
/dev/sdb2  *    31459328 31664127   204800  100M  6 FAT16
/dev/sdb3       31664128 60555263 28891136 13,8G 83 Linux

2. Formázás + GRUB2 telepítése EFI és MBR módban (CentOS/Fedora alól):

# mkfs.vfat -n BOOT -F 16 /dev/sdX2
# mkfs.ntfs -L WinInst -f /dev/sdX1
# mkfs.ext4 -L ISO /dev/sdX3
# mount /dev/sdX2 /mnt
# yum -y install grub2-efi-modules
# grub2-install --target=x86_64-efi --efi-directory=/mnt --boot-directory=/mnt/EFI/BOOT --removable --recheck
# grub2-install --target=i386-pc --boot-directory=/mnt --recheck /dev/sdX

Ez már elég ahhoz, hogy a pendrive bootolható legyen, viszont a Secure Boot-ot ki kell kapcsolni a telepítés idejére, mivel:

a. A fenti módszerrel egy aláíratlan GRUB image keletkezik -> elhasal bootoláskor az aláírás ellenőrzésén
b. A gyári, hivatalosan aláírt GRUB image nem tartalmazza az összes szükséges modult -> nem működik a boot, nem találja az NTFS partíciót, nem tud chainload-olni stb.
c. A Windows Server 2008R2 nincs aláírva, így bekapcsolt SB-vel a telepítő sem indul el.
d. Van lehetőség egyedi (grub2-mkimage paranccsal készített) GRUB image-ek hash-ének eltárolására a firmware-ben (mint ha egy MOK lenne, csak a kulcs helyett egy checksum tárolódik benne),
   de ez macerás, mert minden gépen telepíteni kell a hash fájlokat az UEFI saját tárolójába.
e. Lehetnek olyan kernelek vagy kernelmodulok, amik nincsenek aláírva, ezek nem fognak működni bekapcsolt SB-vel

3. A Linux ISO-kat fel kell másolni az ISO partícióra - Debian, Ubuntu, RHEL, CentOS, Fedora és ezek variánsai telepíthetők közvetlenül az ISO fájlból (nem kell kibontani a fájlokat)
      * Debiannál ennek működéséhez egy külön initrd image-et kell letölteni és felmásolni a pendrive ISO partíciójára:
        * Stretch: https://mirrors.kernel.org/debian/dists/stable/main/installer-amd64/current/images/hd-media/initrd.gz
        * Jessie: https://mirrors.kernel.org/debian/dists/jessie/main/installer-amd64/current/images/hd-media/initrd.gz
      * "Kicsit" bugosan működik az ISO betöltését végző szkript, nem biztos, hogy a megfelelő ISO-t tölti be automatikusan: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841135
        * Workaround: Az ISO fájlokat legalább második szintű könyvtárstruktúrába kell tenni (pl. /Debian/8/debian-ISO-file-neve.iso), így a telepítő rá fog kérdezni, melyiket akarod használni
   * CentOS-nél így adható meg egy ISO telepítési forrásként: inst.stage2=hd:UUID=:/CentOS/7/squashfs.img inst.repo=hd:UUID=:/CentOS/7/CentOS-iso-file-neve.iso
      * A /LiveOS/squashfs.img fájlt fel kell másolni az ISO partícióra az inst.stage2 paraméterben megadott elérési útvonal alá!
      * CentOS 6-nál az /images/install.img fájlt kell átmásolni, és a boot paramétereknél az "inst." előtagot el kell hagyni, a repo paraméterben pedig nem az ISO fájlt, hanem csak annak könyvtárát kell megadni!
   * Fontos: olyan fájlrendszeren kell ezeknek lenni, amit fel tud csatolni a telepítő - NTFS kizárva, mivel a CentOS telepítőben nincs NTFS támogatás.
             ext3/ext4 javasolt a nagyméretű (4G+) ISO-k miatt, amiket a FAT32 nem támogat.

4. Windows telepítők felmásolása (Server 2008+):
   * Másold át az összes fájlt a telepítő ISO-ból az NTFS partíció egy tetszőleges alkönyvtárába (pl. \WinSrv2016)
   * Futtasd a "\boot\bootsect.exe" tool-t a felcsatolt ISO-ból az alábbi paraméterezéssel (ezt csak egyszer kell megcsinálni. 2008R2-nél nem hajlandó futni EFI-vel bootolt gépről, újabb verzióknál nincs ezzel gond):
      * bootsect.exe /nt60 X:
   * FONTOS: A /mbr kapcsolót ne használd, mert felülcsapja a GRUB boot kódját! A pendrive-ról ne futtasd közvetlenül, mert így lockolva lesz a kötet és hibára fog futni a bootcode kiírása.
   * A bootoláshoz az alábbi fájlokra lesz szükség a forrás ISO-ból (2012R2 vagy 2016 használata javasolt):
      * \bootmgr
	  * \bootmgr.efi
	  * \boot könyvtár kompletten
	  * \efi könyvtár kompletten
   * Töltsd le a Visual BCD Editor-t: https://www.boyans.net/VisualBcd5/VisualBcd_0.9.3.1.msi
   * Nyisd meg a \boot\bcd fájlt és hozz létre egy-egy boot bejegyzést a felmásolt telepítőkészletekhez az alábbiak szerint:
      * A fájlban alapból meglévő BcdStore\Loaders\Windows Setup részt módosítd úgy, hogy a megfelelő elérési útvonalak szerepeljenek benne (ApplicationDevice, OSDevice) és a Description szövege is beszédes legyen!
	  * Hozz létre egy új bejegyzést (jobb klikk -> "New Vista/7 loader")
	  * Itt is módosítsd a path-okat és a Description értékét + add hozzá az alábbi három kulcsot:
	     * DetectKernelAndHal -> True
         * WinPEMode -> True
	     * EmsEnabled -> True
	   * Ismételt meg a fentebbi lépéseket minden további Windows telepítőkészlettel.
   * Nyisd meg a \efi\microsoft\boot\bcd fájlt is, és itt is kövesd le a fentebbi módosításokat
         * Arra figyelni kell, hogy EFI bootnál az ApplicationPath "\windows\system32\winload.efi" legyen!
         * Létre kell hozni egy custom típusú kulcsot (csak Server 2012-től felfelé, 2008/2008R2-nél nem kell):
             * 0x16000060 -> True
   * Az EFI boot-tal lehetnek gondok, pl. a 2008 R2 elszállhat még a "Starting Windows" képernyő előtti fázisban valami megfejthetetlen hibaüzenettel.
     Ha gondok vannak az EFI boottal (pl. mert az alaplap firmware-e régi és nem 100%-ban UEFI kompatibilis), akkor érdemes BIOS-t frissíteni vagy a hagyományos, MBR-es boot-olással próbálkozni inkább.
   * Még egy apró trükkre szükség van, mivel alapesetben a telepítő a boot drive gyökerében keresi a telepítőfájlokat, ahol nyilván nem fogja megtalálni a telepítőkészletek alkönyvtárakba rendezése miatt.
     * Megoldás: DISM-mel csatold fel a \sources\boot.wim fájlt és ennek a 2-es számú indexében végezd el az alábbiakat:

	 1. Hozz létre egy szkriptet \Windows\System32\startsetup.cmd néven az alábbi tartalommal:
	 
     @for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %%a:\\ set INSTROOT=%%a:\
     %INSTROOT%\sources\setup.exe
	 
	 2. Hozz létre egy winpeshl.ini nevű fájlt a \Windows\System32 könyvtár alá, ennek ez legyen a tartalma:
	 
     [LaunchApps]
     %SYSTEMDRIVE%\Windows\System32\startnet.cmd
     %SYSTEMDRIVE%\Windows\System32\startsetup.cmd

     Mivel nem tudhatjuk előre, hogy milyen betűjelet fog kapni a pendrive NTFS partíciója, ezért végigpróbálgatjuk C-től Z-ig. Ez amatőr, de nincs jobb megoldás sajnos.

4. GRUB2 MBR példa konfig (/grub2/grub.cfg):

#################################################################################
set timeout=-1
set default=0

menuentry "CentOS 7 1708 DVD X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/7/CentOS-7-x86_64-DVD-1708.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID=$fsuuid:/CentOS/7/squashfs.img inst.repo=hd:UUID=$fsuuid:$iso inst.keymap=hu quiet
    initrd (loop)/isolinux/initrd.img
}

menuentry "CentOS 7 1708 DVD X64 (basic graphics mode)" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/7/CentOS-7-x86_64-DVD-1708.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID=$fsuuid:/CentOS/7/squashfs.img inst.repo=hd:UUID=$fsuuid:$iso inst.keymap=hu quiet xdriver=vesa nomodeset
    initrd (loop)/isolinux/initrd.img
}

menuentry "CentOS 6.9 DVD X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/6/CentOS-6.9-x86_64-bin-DVD1.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz stage2=hd:UUID=$fsuuid:/CentOS/6/install.img repo=hd:UUID=$fsuuid:/CentOS/6 keymap=hu quiet
    initrd (loop)/isolinux/initrd.img
}

menuentry "CentOS 6.9 DVD X64 (basic graphics mode)" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/6/CentOS-6.9-x86_64-bin-DVD1.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz stage2=hd:UUID=$fsuuid:/CentOS/6/install.img repo=hd:UUID=$fsuuid:/CentOS/6 keymap=hu quiet nomodeset
    initrd (loop)/isolinux/initrd.img
}

menuentry "Debian 9.3 (Stretch) DVD X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/Debian/9/firmware-9.3.0-amd64-DVD-1.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/install.amd/vmlinuz iso-scan/ask_second_pass=true vga=788 quiet
    initrd /Debian/9/initrd.gz
}

menuentry "Debian 8.10 (Jessie) netinst X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/Debian/8/firmware-8.10.0-amd64-netinst.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/install.amd/vmlinuz iso-scan/ask_second_pass=true vga=788 quiet
    initrd /Debian/8/initrd.gz
}

menuentry "Windows Server installers -->" {
    search --no-floppy --set=root -u 7429DB2F00B4B1BD
    chainloader ($root)+1
}

menuentry "Memtest86 V4" {
    linux16 /memtest/memtest86.bin
}
#################################################################################

5. GRUB2 EFI példa konfig (/EFI/BOOT/grub2/grub.cfg):

#################################################################################
function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod all_video
}

load_video
set gfxpayload=keep

set timeout=-1
set default=0

menuentry "CentOS 7 1708 DVD X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/7/CentOS-7-x86_64-DVD-1708.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID=$fsuuid:/CentOS/7/squashfs.img inst.repo=hd:UUID=$fsuuid:$iso inst.keymap=hu quiet
    initrd (loop)/isolinux/initrd.img
}

menuentry "CentOS 7 1708 DVD X64 (basic graphics mode)" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/7/CentOS-7-x86_64-DVD-1708.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz inst.stage2=hd:UUID=$fsuuid:/CentOS/7/squashfs.img inst.repo=hd:UUID=$fsuuid:$iso inst.keymap=hu quiet xdriver=vesa nomodeset
    initrd (loop)/isolinux/initrd.img
}

menuentry "CentOS 6.9 DVD X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/6/CentOS-6.9-x86_64-bin-DVD1.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz stage2=hd:UUID=$fsuuid:/CentOS/6/install.img repo=hd:UUID=$fsuuid:/CentOS/6 keymap=hu quiet
    initrd (loop)/isolinux/initrd.img
}

menuentry "CentOS 6.9 DVD X64 (basic graphics mode)" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/CentOS/6/CentOS-6.9-x86_64-bin-DVD1.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/isolinux/vmlinuz stage2=hd:UUID=$fsuuid:/CentOS/6/install.img repo=hd:UUID=$fsuuid:/CentOS/6 keymap=hu quiet nomodeset
    initrd (loop)/isolinux/initrd.img
}

menuentry "Debian 9.3 (Stretch) DVD X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/Debian/9/firmware-9.3.0-amd64-DVD-1.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/install.amd/vmlinuz iso-scan/ask_second_pass=true vga=788 quiet
    initrd /Debian/9/initrd.gz
}

menuentry "Debian 8.10 (Jessie) netinst X64" {
    set fsuuid="98793626-844d-4f69-9bc9-9e50c3a227c3"
    set iso="/Debian/8/firmware-8.10.0-amd64-netinst.iso"
    search --no-floppy --set=root -u $fsuuid
    loopback loop $iso
    linux (loop)/install.amd/vmlinuz iso-scan/ask_second_pass=true vga=788 quiet
    initrd /Debian/8/initrd.gz
}

menuentry "Windows Server installers -->" {
    search --no-floppy --set=root -u 7429DB2F00B4B1BD
    chainloader ($root)/EFI/BOOT/BOOTX64.EFI
}

menuentry "Memtest86 V7" {
    chainloader /memtest/memtest86.efi
}
#################################################################################

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ezt elteszem. Köszi

+1

+1

+1

+1

Egyszerűbb helyzetekhez van egy olyan hogy easy2boot.
Erről érdemes tudni: http://www.easy2boot.com/add-payload-files/make-file-contiguous/

Köszi, biztos hasznos tool, bár igazság szerint nekem már az oldal kinézete (áttekinthetelensége) és az erre vonatkozó kiírás sem túl szimpatikus:

Idézet:
Don't like the style, page format, messy layout and all the annoying adverts on this site?
E2B is free, but anyone who makes a donation of £5 or more (or if you report a bug or buy an E2B eBook) will be emailed a URL which loads the E2B and RMPrepUSB website pages quicker, has much fewer adverts per page and a much neater format (see this page for an example of the simpler web page format).

A reklámokkal nincs bajom, de az elég szánalmasan hangzik, hogy az áttekinthető, esztétikus design-ért is pénzt kér a fejlesztő...

A ramdisk-alapú boot egyébként nagyon hasznos tud lenni kisebb (1 GB alatti) image-eknél, ezt a feature-t a GRUB és a syslinux natívan tudja, viszont sok esetben nem a legjobb megoldás, illetve nem is minden esetben működik:

  • egy 4+ GB-os DVD lemezképet RAM-ba betölteni nem túl elegáns, és nem is túl univerzális megoldás mondjuk egy laptopnál vagy desktop gépnél, ahol a legjobb esetben is csak max. 8 GB RAM-ból lehet gazdálkodni
  • a Windows csak a saját ramdisk megoldását ismeri, más implementációkkal nem bootolható (a kernel betöltődésekor, a real mode -> protected mode váltást követően elveszti a hozzáférést a ramdisk tartalmához). Ez persze nem feltétlen baj, ha mondjuk a pendrive-on van egy NTFS kötet, aminek a gyökerében ott a komplett telepítőkészlet, de több Win telepítőkészlet esetén nem működik (ebbe konkrétan belefutottam)

Sajnos ez már csak a HOWTO-ban felvázolt megoldás kidolgozása után jutott csak eszembe, de elvileg úgy is meg lehet oldani a többféle verziójú Windows telepítését, hogy egyetlen install.wim fájlba kerülnek be a különböző verziók lemezképei, így az épp szükséges OS release-t a Windows installerén belül ki lehet választani. Ez amiatt is jó, mert így elég csak egy telepítőkészletet felrakni az NTFS partícióra, ami mehet a gyökérbe, és így nem kell semmit hackelni (ld. 4. lépés, utolsó gondolatjel). Plusz előny, hogy így párszáz MB-nyi tárhelyet meg lehet spórolni, ahova néhány kisebb (netinst) ISO elférhet még pluszban.

Ha jól emlékszem, Rufus-szal próbálkoztam eleinte, viszont a Windows telepítőket sehogy sem sikerült működőképes állapotban (értsd: hiba nélkül végigfuttatható a telepítő) rávarázsolnia a pendrive-ra, így végül maradtam a saját megoldásomnál. Persze az is lehet, hogy csak én bénáztam el valamit, mivel éppen akkor ismerkedtem a Rufus-szal... :)

subscribe

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

Én hasonlót PXE környezetbe csináltam, Debian, CentOS {6,7}, Fedora [mostani legfrissebb - 1 mert még lusta voltam :)] és MDT alapú Windows telepítővel (ez utóbbi lásd a blogom, gyakorlatilag egy Win PE környezet és egy raklap VB script), egy sima WinPE, ami ad egy cmd.exe-t [néha jól jön, ha Wint kell offline csesztetni], CloneZillával, SysRescCD-vel, MemTest-tel meg néhány hasonló aprósággal.

Kell hozzá egy tftp szerver kb. az ipxe image-knek (ipxe.efi és undionly.kkpxe), saját ipxe script (csinálj dhcp-t majd várom három mp-t egy F10 leütésre és ha leütötték, indítsd a http://szerver/ipxe/default scriptet...) beleégetve, úgyhogy a többi cucc már HTTP-n jön.

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Ez elég profinak tűnik, viszont sajnos DR szituációban a PXE nem feltétlen opció, mivel lehet, hogy még helyi háló sincs, és mivel ilyenkor sürget az idő, a legjobb minél előbb elkezdeni a szerverek telepítését, hogy mire összeáll a hálózat, addigra már a backup-ok visszaállításával lehessen foglalkozni.

subscribe


Archlabs

Jopofa, neha hasznos tud lenni.

Korabbi telefonom tobb USB modot tudott, ezek kozul az egyiknel a flash-en levo .iso-t ajanlotta ki USB-s, kulso CD ROMkent. Kiprobaltam, hogy ha lecserelem ezt a file-t egy Ubi telepitore, arrol bootolhato. Innentol mindig volt nalam Ubuntu, csak a telefonom kellett hozza, meg egy mikroUSB kabel (ami amugy is mindig van nalam).

Ha valaki rendszergazda, es erre alkalmas telefonja van, jol johet.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Csak kíváncsiság, milyen telefon volt az?

Vodafone 845, gyakorlatilag egy rebrandelt Pulse Mini. Huawei gyartotta, 15k-ert vettem meg nagyon regen. Egyebkent meg mindig mukodik, bar kicsit pupos az akkuja (meg a 2.1-es Android elegge elavultnak szamit). Egyebkent azon az ison a kutyu leirasa volt egy pdf-ben.

Amiben nem vagyok biztos, az az elozo, a sima Ulefone Power (most a 2-est nyuzom, mar 5S-nel tartanak). Sajnos nem tudom kiprobalni, mert egyszer leesett, es azota nem kapcsol be, de ha jol emlekszem, az is tudta. (a 2 nem)

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin