Faceți căutări pe acest blog

vineri, 11 mai 2018

Boot Live iso hdd cu persistență

 E util să bootăm distribuții din imaginea iso de pe disc, dar de multe ori ar fi frumos să putem păstra datele, setările, modificările făcute în sesiunea live. Documentele pot fi copiate (dacă nu uităm...) pe altă partiție, dar parola conexiunii wi-fi, setările (hotkeys, shortcuts, browser bookmarks, shell history, șamd) se pierd la fiecare shutdown/ reboot. Nu toate distribuțiile pot fi rulate cu persistență, și de fapt nici nu e utilă persistența în toate cazurile, mi se pare bună persistența pentru distribuții precum BlackArch, Kali, Parrot, Tails, Deft (Digital Evidence & Forensic Toolkit), complet inutilă pentru Clonezilla (care suportă persistența: http://clonezilla.org/clonezilla-live/boot-parameters/live-boot.php), Gparted, RedoBackup, Rescatux, BootRepairDisk, și posibil utilă pentru o distribuție oarecare, Ubuntu sa zicem, caz în care am avea un ”hibrid”, sesiune live din imaginea iso, dar cu persistență, ca și cum am avea instalată distribuția pe disc.
 BlackArch, ca și celelalte distribuții bazate pe Arch nu suportă persistența! De fapt m-am pripit cu această afirmație, suportă sesiuni live cu persistență, cel puțin unele, chiar dacă cu unele limitări, posibil să nu știu eu deocamdată care-i rezolvarea.
 Trebuie creată o mică partiție care va servi drept locul unde vor fi salvate schimbările, sau să folosim un director creat anumit pe o partiție existentă. Schimbările în directorul personal (wallpaper, temă, fișiere create, fișiere descărcate, parole, conexiuni la net, autologare, șamd) sunt păstrate, probleme apar la unele distribuții (Archman de exemplu se blochează, BlackArch dă erori la actualizare, distribuția e veche de un an, apar încompatibilități între versiunile aplicațiilor) la schimbările din /, actualizări, instalări de alte programe... În altele sunt salvate toate schimbările, actualizări, aplicații nou instalate, de exemplu în ArchLabs sau Archbang. Din motive care-mi scapă, unele derivate din Arch (Manjaro, KaOS) nu au păstrat schimbările, ceva nu era în regulă.

Actualizare: problema este că developerii anumitor distribuții bazate pe ArchLinux au făcut unele modificări, mai exact sunt mai multe fișiere squashfs, 3 în cazul Chakra și KaOS și 4 în cazul Manjaro, deci fișiere separate pentru live, desktop, root, mhwd (Manjaro HardWare Detection), spre deosebire de Arch sau alte derivate (ArchBang, ArchLabs, ArcoLinux, ArchEx, BlackArch)...



Voi pune intrările pentru cele pe care am reușit să le rulez în sesiune live direct din imaginea iso cu persistență (BlackArch, ArchBang, ArchLabs, ArchEx, Archman, ArcoLinux).
menuentry "BlackArch" --class iso {
set isofile="/dan/Downloads/ISO/blackarchlinux-live-2017.12.11-x86_64.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/blackarch/boot/x86_64/vmlinuz archisobasedir=blackarch archisolabel=BLACKARCH_201712 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=BlackArch cow_device=/dev/sda16 cow_device=/dev/disk/by-label/BlackArch cow_persistent=p i915.modeset=1
initrd (loop)/blackarch/boot/x86_64/archiso.img
}
menuentry "Archbang" --class iso {
set isofile="/dan/Downloads/ISO/archbang-rc-1205.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCHBANG img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=Archbang cow_device=/dev/sda12 cow_device=/dev/disk/by-label/Archman cow_persistent=p i915.modeset=1 copytoram
initrd (loop)/arch/boot/x86_64/archiso.img
}
menuentry "ArchEx" --class iso {
set isofile="/dan/Downloads/ISO/archex-64bit-deepin-lxqt-calamares-1880mb-171129.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCHEX_201703 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=Archex cow_device=/dev/sda13 cow_device=/dev/disk/by-label/Archex cow_persistent=p i915.modeset=1 copytoram
initrd (loop)/arch/boot/x86_64/archiso.img
}
menuentry "ArchLabs" --class iso {
set isofile="/dan/Downloads/ISO/archlabs-2018-05.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=AL-X86_64 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=Archlabs cow_device=/dev/sda16 cow_device=/dev/disk/by-label/Archlabs cow_persistent=p i915.modeset=1 copytoram
initrd (loop)/arch/boot/x86_64/archiso.img
}

menuentry "Archman" --class iso {
set isofile="/dan/Downloads/ISO/archman-xfce-1805_x86_64.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCHMAN img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=Archman cow_device=/dev/sda9 cow_device=/dev/disk/by-label/Archman cow_persistent=p i915.modeset=1 copytoram
initrd (loop)/arch/boot/x86_64/archiso.img
}


 După cum observați sistemul de setare al persistenței e diferit față de Debian/ Ubuntu/ derivate. Inspirația mi-a venit citind documentația: https://github.com/djgera/archiso/blob/master/docs/README.bootparams
 Eu am placă video Intel, de aceea  apare parametrul i915.modeset=1, pentru plăci grafice nvidia sau amd puneți nouveau.modeset=1, respectiv radeon.modeset=1. Se pot pune toți cei 3 parametri, nu vor influența negativ procesul.
 Folosiți cu atenție parametrul copytoram, e util în cazul distribuțiilor cu dimensiune redusă, nu în cazul BlackArch care are 7,5GB, posibil să nu aveți atât RAM, opțiunea copie SquashFS (imaginea airootfs.sfs) în RAM... Putem alege doar un anumit procent (25%, 50%, etc, implicit e 75%).
 E posibil să putem folosi chiar un director de pe o partiție existentă, vom modifica în concordanță intrările în meniu, trebuie modificați parametrii cow_label=etichetă-corectă-partiție , cow_device=/dev/disk/by-label/${cow_label} și adăugat parametrul cow_directory=director-creat-în-interiorul-${cow_device}.
 Un exemplu: Archman în sesiune live cu persistență, datele fiind salvate pe partiția /dev/sda11, cu eticheta Manjaro, într-un director numit Archman-persistence:
menuentry "Archman" --class iso {
set isofile="/dan/Downloads/ISO/archman-xfce-1805_x86_64.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCHMAN img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=Manjaro cow_device=/dev/sda11 cow_device=/dev/disk/by-label/Manjaro cow_directory=Archman-persistence cow_persistent=p i915.modeset=1 copytoram
initrd (loop)/arch/boot/x86_64/archiso.img

 Alt exemplu, ArcoLinux 2018, modificările salvate în partiția /dev/sda3, cu eticheta date, în directorul arco-linux:
menuentry "ArcoLinux" --class iso {
set isofile="/dan/Downloads/ISO/arcolinux-v6.8.2-2018.05.30.iso"
loopback loop (hd0,2)/$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=arcolinux-v6.8.2-201805-x86_64 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop cow_label=date cow_device=/dev/sda3 cow_device=/dev/disk/by-label/date cow_directory=arco-linux cow_persistent=p i915.modeset=1 copytoram
initrd (loop)/arch/boot/x86_64/archiso.img
}




 

  
Kali și Parrot pot boota cu persistență dacă punem unei partiții eticheta persistence și creăm în acea partiție un fișier persistence.conf cu conținutul:
/ union, fie o facem în file manager, fie în terminal cu comenzile (în exemplul următor mă refer la pertiția /dev/sda4, modificați în consecință):
mkfs.ext4 -L persistence /dev/sda4
e2label /dev/sda4 persistence

echo "/ union" > /label-partiție/persistence.conf   
de exemplu:
echo "/ union" > /persistence/persistence.conf
echo "/ union" > /date/persistence.conf

 Partiția trebuie să fie ext3 sau ext4, poate fi o partiție deja creată și folosită (la mine partițiile persistence și date sunt ext4 și le folosesc ca partiții de date și backup), sau creăm una nouă de 10-50-100 GB, în funcție de spațiul disponibil și de modul în care folosim distribuția.
 Apoi trecem la parametrii kernelului persistence. Intrările vor arăta:

menuentry "Parrot" {
insmod loopback
insmod iso9660
set isofile='/dan/Downloads/ISO/Parrot-security-3.11_amd64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sda2/$isofile hostname=parrot splash noautomount persistence rw toram panic=5
initrd (loop)/live/initrd.img
}
menuentry "Kali 2016" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/kali-linux-2016.2-i386.iso"
loopback loop (hd0,2)$isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali noprompt noeject persistence rw toram panic=5
initrd (loop)/live/initrd.img
}
menuentry "Kali 2018" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/kali-linux-kde-2018.1-amd64.iso"
loopback loop (hd0,2)$isofile
linux (loop)/live/vmlinuz-4.14.0-kali3-amd64 boot=live findiso=$isofile noconfig=sudo username=root hostname=kali noprompt noeject persistence rw toram panic=5
initrd (loop)/live/initrd.img-4.14.0-kali3-amd64
}

 Putem chiar alege altă destinație (partiție) unde să fie salvate datele, modificările, trebuie doar ca acea partiție să aibă etichetă, să conțină fișierul persistence.conf și-n final să trecem parametrul persistence-label=”etichetă” la menuentry, în exemplul următor acea partiție are eticheta date:

menuentry "Parrot" {
insmod loopback
insmod iso9660
set isofile='/dan/Downloads/ISO/Parrot-security-3.11_amd64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sda2/$isofile hostname=parrot splash noautomount persistence persistence-label=date rw toram panic=5
initrd (loop)/live/initrd.img
}

 Parrot va salva datele într-un director rw, bineînțeles pe partiția desemnată pentru salvarea datelor, persistence, date sau indiferent cum o denumiți.Putem oricând boota în modul ”clasic” editând intrarea distribuției și ștergând parametrii referitorila persistență.

 Tails (The Amnesic Incognito Live System) suportă doar persistența pe o partiție criptată, nu am nici o partiție disponibilă (disc formatat MBR cu deja 4 partiții primare...), deci nu pot testa, vă las link către documentație și către un sumar:
https://tails.boum.org/contribute/design/persistence/
https://tor.stackexchange.com/questions/12841/use-tails-persistent-volume-with-iso

 Debian și derivatele pot folosi persistența în exact același mod, diferă eticheta implicită a partiției, Debian preferă live-rw, Ubuntu casper-rw, Kali și Parrot persistence, Debian, Kali și Parrot pot folosi altă partiție cu alt label pentru persistență, Ubuntu vrea doar cu partiție etichetată casper-rw...
 Ubuntu și derivatele știu și ele de persistență, dar eticheta partiției unde se păstrează modificările trebuie să fie casper-rw. Parametrii sunt puțin diferiți, persistent în loc de persistence și label casper-rw (preferabil) sau persistence-label=casper-rw. Intrarea pentru Grub2 va fi de genul:

menuentry "Lubuntu 16.04" {
set isofile="/ISO/lubuntu-16.04-desktop-i386.iso"
loopback loop (hd0,4)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject persistent persistence-method=overlay persistence-label=casper-rw rw toram panic=5
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu 18.04" {
set isofile="/dan/Downloads/ISO/bionic-desktop-amd64.iso"
loopback loop (hd0,2)$isofile
linux (loop)/casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=$isofile noprompt noeject persistent persistence-method=overlay persistence-label=casper-rw rw toram panic=5
initrd (loop)/casper/initrd.lz
}
menuentry "Debian-live-9.3.0" {
set isofile='/dan/Downloads/debian-live-9.3.0-amd64-xfce.iso'
loopback loop (hd0,2)$isofile
linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sda2/$isofile toram persistence persistence-method=overlay persistence-label=live-rw rw panic=5
initrd (loop)/live/initrd.img
}
menuentry "PIXEL" {
set isofile='/dan/Downloads/ISO/2017-11-16-rpd-x86-stretch.iso'
loopback loop (hd0,2)$isofile
linux (loop)/live/vmlinuz2 boot=live config fromiso=/dev/sda2/$isofile components splash plymouth.ignore-serial-consoles persistence persistence-label=live-rw rw
initrd (loop)/live/initrd2.img
}

 PIXEL (Pi Improved Xwindows Environment, Lightweight: https://www.raspberrypi.org/blog/pixel-pc-mac/) este o distribuție economică de Linux, bazată pe Debian și destinată Raspberry Pi, dar acum și pentru PC și MAC.


 Dacă pentru Ubuntu folosiți o partiție deja existentă veți observa niște modificări în structură, nu vă speriați, aveți toate datele anterioare, dar sunt în directorul upper.

 MX are nevoie de o partiție numită MX-Persist, va stoca acolo modificările. În același mod funcționează persistența și pentru AntiX. Parametri persistență:
persist_all ..... Fast. Saves root and home (uses RAM, saves at shutdown)
persist_root .... Fast. Only saves root (uses RAM, saves at shutdown)
persist_static .. Slow. Saves root and home (no RAM use, saves constantly)
persist_home .... Only home persistence
frugal_persist .. Frugal with both root and home persistence
frugal_root ..... Frugal with only root persistence
frugal_static ... Frugal with home and static root persistence
frugal_home ..... Frugal with only home persistence
frugal_only ..... Only Frugal, no persistence
http://download.tuxfamily.org/antix/docs-antiX-16/Boot_Menu/antiX-gfxboot.html#persist
https://download.tuxfamily.org/antix/docs-antiX-17/FAQ/persistence.html

menuentry "MX 17.1" {
set isofile='/dan/Downloads/ISO/MX-17.1_x64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/antiX/vmlinuz fromiso=$isofile bootdev=sda2 persist_all tz=Europe/Bucharest
initrd (loop)/antiX/initrd.gz
}

menuentry "ISO antiX" {
set isofile='/dan/Downloads/ISO/antiX-17_x64-full.iso'
loopback loop (hd0,2)$isofile
linux (loop)/antiX/vmlinuz fromiso=$isofile from=all disable=lx persist_all pdev=sda6 plab=AntiX-Persist tz=Europe/Bucharest nomodeset toram
initrd (loop)/antiX/initrd.gz




Porteus: trebuie să creăm undeva un director în care vor fi salvate modificările, eu l-am creat pe partiția /dev/sda3 cu numele porteus. Modificări precum tema, wallpaperul, conexiunea la wi-fi se păstrează automat, aparent nu cele la aplicațiile instalate (de exemplu firefox, bluez sau screenfetch), de fapt e necesar să încărcăm modulele suplimentare cu extramod=/cale-către-directorul-cu-pachetele-respective. În exemplul următor imaginea iso este pe partiția /dev/sda2 (/home pentru Archul meu), în /home/dan/Downloads/ISO, modificările le salvez pe partiția /dev/sda3 (/date în Arch), în directorul porteus, extramodulele (aplicațiile instalate de mine...) sunt în porteus/ changes/tmp/usm. Am preferat să folosesc contul de root, dacă nu doriți va trebuia să creați un cont de user normal și să folosiți parametrul login=nume-user. Intrare Grub2:
menuentry "Porteus" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/Porteus-XFCE-v4.0-x86_64.iso"
loopback loop (hd0,2)$isofile
linux (loop)/boot/syslinux/vmlinuz from=/dan/Downloads/ISO/Porteus-XFCE-v4.0-x86_64.iso changes=/dev/sda3/porteus
extramod=/dev/sda3/porteus/changes/tmp/usm/ timezone=Europe/Bucharest bluetooth login=root copy2ram
initrd (loop)/boot/syslinux/initrd.xz



 Gentoo live-dvd poate fi rulat cu persistență (modificările vor fi păstrate sub numele livecd.aufs), chiar foarte simplu, prin adăugarea la parametrii de boot a aufs=/dev/sdxy (aufs=/dev/sdb2 de exemplu), iar intrarea ar arăta astfel:

menuentry "Gentoo live-dvd" {
set isofile="/dan/Downloads/ISO/livedvd-amd64-multilib-20160704.iso"
loopback loop (hd0,2)$isofile
linux (loop)/isolinux/gentoo root=/dev/ram0 aufs init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot initrd=/boot/gentoo.igz isoboot=/dan/Downloads/ISO/livedvd-amd64-multilib-20160704.iso aufs=/dev/sda3 panic=6
initrd (loop)/isolinux/gentoo.xz
}
 Gentoo a scos ultimul live-dvd în 2016, de atunci aufs a fost înlocuit cu overlayfs, în consecință Gentoo și derivatele (sau Pentoo, Sabayon, șamd) nu mai știu de persistență, sau n-am reușit eu. Deocamdată.

 Nu folosiți aceeași partiție pentru persistență la mai multe distribuții, apar suprapuneri, neconcordanțe, de exemplu deschidem terminalul în PIXEL și ne trezim cu datele salvate din Parrot...

vineri, 16 februarie 2018

Boot iso images from hdd - 2 (Windows- Grub2Win)

 Putem boota distribuții Linux în sesiune live și direct din imaginile iso descărcate pe hdd și din Windows. Eu am testat din Windows 7, dar sunt convins că funcționează și din XP, 8 și 10, dacă mă iau după specificații. Sincer să fiu nu mă gândisem la așa ceva, nu folosesc windows, dar de curând am fost întrebat dacă și cum se poate face, și am găsit ideea utilă. Utilă pentru utilizatorii de windows ce ar dori să testeze Linux, aceasta este categoria care mă interesează mai mult, dar și pentru cei ce vor să-și facă backup/ restore, să navigheze în intimitate sau pentru pentesting. Fără să pună imaginea iso pe cd, dvd sau stick usb!
 Bootloaderul windowsului este primitiv comparativ cu Grub2, nu știe să facă așa ceva, dar cred că-i intenționat așa, cei de la MS nu au interes să folosească utilizatorii alte sisteme de operare!
 Am încercat alte bootloadere EasyBCD, AioBoot, Grub4Dos, Easy2Boot, fără rezultate notabile, am reușit până la urmă cu Grub2win.
 Descărcați (https://sourceforge.net/projects/grub2win/), instalați și rulați Grub2win, este simplu. Într-un fel este mai simplu de folosit, mai intuitiv comparativ cu Grub2, are interfață grafică, încarcă automat o imagine, vă dă un ”menuentry”, deci aveți un model de sintaxă, tot ce trebuie făcut este să puneți parametrii corecți, cam aceeași ca-n cazul Grub2, cale către imaginea kernelului și imaginea initrd, parametrii specifici de bootare. Evident, este implementarea Grub2 pentru windows...
 Dar mie mi-a dat bătăi de cap, sintaxa este diferită, prea multe clickuri, prea mult timp pierdut cu fiecare distribuție în parte, am preferat să trec intrările distribuțiilor direct în fișierul de configurări grub.cfg din directorul (folderul) grub2.  Este mai rapid, trecem simultan mai multe intrări (menuentries), se folosește exact aceeași sintaxă ca în Grub2, deci nu avem surprize. Cu excepția faptului că doar 10 intrări (11 cu tot cu cea implicită cu setările, Boot Information and utilities) sunt afișate, cred că-i o limitare, neimportantă oricum, nu cred că vreți 50 de intrări, pentru 50 de distribuții... Regret, a fost o greșeală de-a mea, poate n-am închis un menuentry...
Uitați 2 screenshoturi cu fișierul, se vede clar poziția în care se inserează intrările, pozițiile de început și sfârșit.



Cerințe:
1- Verificați md5sum a imaginii iso, merge și fără, dar trebuie să vedeți dacă imaginea descărcată este corectă.
2- Trebuie să cunoașteți căile corecte către imaginile comprimate ale kernelului și sistemului de fișiere și module necesare la bootare. Denumirile acestora diferă, vmlinuz și initrd.img, cu variante precum vmlinuz0 și initrd0.img (în cazul Rosa, OpenMandriva, Fedora) sau vmlinuz.efi și initrd.lz (în cazul Ubuntu) sau chiar generic (ultima denumire a imaginii kernelului în Slackware), sau archiso (imaginea initrd.img /initial RAM disk în Arch), șamd, în timp pot varia aceste denumiri chiar în cadrul unei distribuții. Căile diferă și acestea, imaginile pot fi păstrate în diverse directoare, live, boot, isolinux, casper, arch, pmagic, șamd. Mai mult, pot fi mai multe asemenea fișiere, în live pentru sesiuni live și-n install pentru instalare
3- Trebuie să pasați parametrii potriviți, diferă de la distribuție la distribuție. Parametrii potriviți pot fi găsiți de obicei în fișierul de setări grub.cfg (/boot/grub/grub.cfg). Dacă aveți un utilitar pentru arhivare capabil să vă arate conținutul imaginii iso îl puteți citi, eu în Linux folosesc Ark. Același utilitar vă permite să găsiți căile (path) către kernel și initrd.img.
4- În exemplele mele, windows este pe partiția a patra a primului disc, de aici (hd0,4) (sau /dev/sda4). Toate imaginile iso sunt stocate în directorul ISO pe partiția (hd0,4), partiție C a windowsului. Înlocuiți după caz, Grub2 începe numerotarea discurilor de la 0 și a partițiilor de la 1. Deci prima partiție a primului disc este /dev/sda1 și/ sau (hd0,1), a doua /dev/sda2 și/ sau (hd0,2).
 În cazul meu discul este partiționat clasic (MBR/ Master Boot Record, nu GPT/ GUID Partition Table), în BIOS e setat pe Legacy Boot, nu UEFI.Windows este instalat pe a patra partiție, este versiunea pe 64 biți (x86_64).

 Nu am testat multe distribuții, în nici un caz nu voi testa și-n windows 100 și ceva de distribuții, voi pune mai jos menuentries pentru câteva distribuții, cele pe care le cred utile utilizatorilor (Clonezilla, Gparted, PartedMagic, RedoBackup, Kali, BlackArch, Parrot), și unele mai cunoscute (Lubuntu), plus cele pe care le aveam eu pe hdd (AntiX, ArchBang, Manjaro, Porteus)poate voi adăuga altele pe parcurs. Mai degrabă nu, vă puteți inspira din celălalt material (http://stressat.blogspot.ro/2014/04/boot-iso-images-from-hdd-grub2.html), mai verificaţi oricum aici menuentries actuale, există mici diferențe.
 Nu veți reuși să bootați toate distribuțiile, e un proces trial and error!
 După instalarea Grub2win, acesta va rescrie/ înlocui bootloaderul windowsului și la boot veți avea 2 opțiuni de bootare, windows și Grub 2 for windows, cu prima intrați în windows, cu a doua primiți lista cu distribuțiile adăugate în Grub2win.

 
 Adăugarea unei distribuții este simplă, porniți aplicația Grub2win (după instalare veți avea shortcut pe desktop), apăsați butonul Manage Boot Menu, apoi butonul Add New Entry, la Type selectați isoboot, click Select Iso File, căutați imaginea iso (eu am creat un director în C numit ISO în care am pus toate imaginile iso Linux), click Edit Custom Code, aveți sintaxa necesară, dar trebuie puși parametrii de boot necesari fiecărei distribuții, aveți exemple corecte mai jos, pentru alte distribuții găsiți parametri ok în materialul dedicat bootării imaginilor iso din Linux. Click Apply, click Ok, închideți, restartați, alegeți Grub 2 for windows, selectați distribuția dorită.






 Repet, eu am avut rezultate 100% ok trecând intrările în folderul /grub2/grub.cfg, chiar la finalul secțiunii start-grub2win-auto-menu-section, vă recomand același lucru!


 Dar puteți folosi interfața grafică pentru introducerea intrărilor, aveți în partea de sus butonul Syntax, așa se verifică sintaxa intrării, dacă de exemplu ați uitat un { sau }. Diferența față de exemplele date este lipsa primei și ultimei linii, de exemplu pentru AntiX veți pune (nu veți pune menuentry ”AntiX”  { și }):
insmod loopback
insmod iso9660
set isofile='/ISO/antiX-13.2_x64-full.iso'
set root=(hd0,4)menuentry "Hiren 15.2" {
linux (loop)/antiX/vmlinuz fromiso=$isofile from=all quiet

initrd (loop)/antiX/initrd.gz

Exemple funcţionale:

menuentry ”AntiX”  {

insmod loopback
insmod iso9660
set isofile='/ISO/antiX-13.2_x64-full.iso'
set root=(hd0,4)menuentry "Hiren 15.2" {
linux (loop)/antiX/vmlinuz fromiso=$isofile from=all quiet

initrd (loop)/antiX/initrd.gz
}
menuentry "Archbang" {
insmod loopback
insmod iso9660
set isofile="/ISO/archbang-lite-beta-1216-i686.iso"
loopback loop (hd0,4)/$isofile
linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCHBANG img_dev=/dev/sda4 img_loop=$isofile earlymodules=loop panic=5
initrd (loop)/arch/boot/i686/archiso.img

menuentry "BlackArch" {
set isofile="/ISO/blackarchlinux-live-2017.12.11-x86_64.iso"
loopback loop (hd0,4)$isofile
linux (loop)/blackarch/boot/x86_64/vmlinuz archisobasedir=blackarch archisolabel=BLACKARCH_201712 img_dev=/dev/sda4 img_loop=$isofile earlymodules=loop panic=5
#initrd (loop)/blackarch/boot/intel_ucode.img
initrd (loop)/blackarch/boot/x86_64/archiso.img
}  

menuentry "ISO Manjaro 17.7.4" {
set isofile="/ISO/manjaro-xfce-17.1.4-stable-x86_64.iso"
loopback loop (hd0,4)$isofile
linux (loop)/boot/vmlinuz-x86_64 img_dev=/dev/sda4 img_loop=$isofile misobasedir=manjaro misolabel=MJRO1714 nouveau.modeset=1 i915.modeset=1 radeon.modeset=1
initrd (loop)/boot/initramfs-x86_64.img
}

menuentry "Porteus" {
insmod loopback
insmod iso9660
set isofile="/ISO/Porteus-XFCE-v3.1-i486.iso"
loopback loop (hd0,4)$isofile
linux (loop)/boot/syslinux/vmlinuz from=/ISO/Porteus-XFCE-v3.1-i486.iso copy2ram panic=5
initrd (loop)/boot/syslinux/initrd.xz

menuentry "Lubuntu 16.04" {
set isofile="/ISO/lubuntu-16.04-desktop-i386.iso"
loopback loop (hd0,4)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject panic=5
initrd (loop)/casper/initrd.lz

menuentry "Parrot" {
set isofile='/ISO/Parrot-security-3.11_amd64.iso'
loopback loop (hd0,4)$isofile
linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sda4/$isofile hostname=parrot splash noautomount  panic=5
initrd (loop)/live/initrd.img
}
menuentry "Kali" {
set isofile="/ISO/kali-linux-2016.2-i386.iso"
loopback loop (hd0,4)$isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali noprompt noeject panic=5
initrd (loop)/live/initrd.img
}
menuentry "Clonezilla 2.5.0" {
set gfxpayload=1368x768x16
set root='hd0,4'
set isofile_abspath="/ISO/clonezilla-live-2.5.0-5-amd64.iso"
set isofile_devpath="${devroot}${isofile_abspath}"
loopback loop "(${root})${isofile_abspath}"
linux '(loop)/live/vmlinuz' boot='live' union='overlay' username='user' config components noswap edd='on' nomodeset nodmraid noeject locales='' keyboard-layouts='' ocs_live_run='ocs-live-general' ocs_live_extra_param='' ocs_live_batch='no' ip='' acpi='off'irqpoll noapic noapm nodma nomce nolapic nosmp nomodeset nosplash panic=5 findiso="${isofile_abspath}"
initrd '(loop)/live/initrd.img'
}
menuentry "GParted" {
set gfxpayload=1368x768x16
set root='hd0,4'
set isofile_abspath="/ISO/gparted-live-0.27.0-1-amd64.iso"
set isofile_devpath="${devroot}${isofile_abspath}"
loopback loop "(${root})${isofile_abspath}"
linux '(loop)/live/vmlinuz' boot='live' union='overlay' username='user' config components noswap noeject toram='filesystem.squashfs' ip='' nosplash panic=5 findiso="${isofile_abspath}"
initrd '(loop)/live/initrd.img'
}
menuentry "Parted Magic" {
set isofile="/ISO/pmagic_2016_07_12.iso"
loopback loop (hd0,4)$isofile
linux (loop)/pmagic/bzImage64 edd=off load_ramdisk=1 prompt_ramdisk=0 rw livemedia noeject loglevel=9 max_loop=256 vmalloc=384MiB iso_filename=/ISO/Downloads/ISO/pmagic_2016_07_12.iso panic=4
initrd (loop)/pmagic/initrd.img (loop)/pmagic/fu.img (loop)/pmagic/m64.img
}
menuentry "RedoBackup" {
set isofile="/ISO/redobackup-livecd-1.0.4.iso"
loopback loop (hd0,4)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject panic=5
initrd (loop)/casper/initrd.lz
}


Grub2win poate boota chiar şi derivatele Android pentru PC, am testat cu RemixOS. Diferenţa este la Type în loc de Isoboot se alege Android. RemixOS este salvat tot în directorul ISO din C, este dezarhivat (extras din imaginea iso) în subdirectorul remis-os (deci calea, path este /ISO/remix-os), imaginea iso este copiată în directorul /ISO/remix-os. Este bootat cu persistenţă, modificările vor fi salvate într-un director numit data pe care îl creăm noi in remix-os (calea este /ISO/remix-os/data). Exact ca şi cu Grub2 în Linux, nu trebuie trecută partiţia la path (/dev/sda2 de exemplu pentru Linux sau C ori D pentru windows, bootloaderele consideră acea partiţie ca fiind /, partiţia rădăcină)! În mod similar procedaţi pentru PhoenixOS sau Android-x86. Vă puteţi inspira de aici:
https://stressat.blogspot.ro/2016/10/remix-os.html
https://stressat.blogspot.ro/2016/10/phoenix-os.html
 Eu am trecut intrarea direct în grub.cfg, cum am mai spus.
menuentry "Remix-64" {
set root='hd0,4'
loopback loop (hd0,4)$isofile
search --set=root --file /ISO/remix-os/kernel
linux /ISO/remix-os/kernel root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive SRC=/ISO/remix-os DATA= CREATE_DATA_IMG=1 UVESA_MODE=1368x768 panic=5
initrd /ISO/remix-os/initrd.img
}

 Putem boota astfel și sisteme de operare diferite de Linux, KolibriOS, MenuetOS, ReactOS, Hiren'sBootCD (utilitarele, nu Mini Windows XP), vedeți aici (http://stressat.blogspot.ro/2016/12/boot-non-linux-iso-images-from-hdd-with.html) cum anume și exemple funcționale.


Completare:
Am avut câteva cazuri în care distribuții Linux nu bootau complet, dădeau tot felul de erori, am descoperit cauza, nu suportă partițiile ntfs... Un artificiu bun pentru unele distribuții este adăugarea parametrului insmod ntfs (vedeți în exemplele următoare unde anume), dar nu funcționează în toate cazurile. Soluția corectă, preferabilă, este crearea unei partiții ext4 (poate fi partiție logică în cadrul uneia extinse) pe care să depozitați imaginile iso! Evident că trebuie modificate apoi căile, voi pune 4 exemple. Ca fapt divers, CentOS Gnome și Slackware le-am descărcat azi în Linux, le-am copiat pe partiția ntfs (păstrându-le și pe ext4 pe care am testat într-o clipă de inspirație) și-n final am editat din Linux fișierul de configurări al Grub2Win /grub2/grub.cfg, la boot totul a mers fără probleme! D-aia-i bună CLI... Posted Image  Ca să înțelegeți diferențele: partiția ext4 este a doua pe disc, deci /dev/sda2 sau (hd0,2), (hd0,msdos2) pentru că am partiționare MBR, ar fi fost (hd0,gpt2) pentru schemă de partiționare GPT, imaginile iso sunt păstrate în directorul /dan/Downloads/ISO.
menuentry "ISO CentOS-7-livecd-KDE" {
insmod ntfs
insmod loopback
insmod iso9660
set root=(hd0,2)
set isofile='/dan/Downloads/ISO/CentOS-7-livecd-KDE-x86_64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-livecd-KDE-x86_64 iso-scan/filename=$isofile rd.live.image
initrd (loop)/isolinux/initrd0.img
}
menuentry "ISO CentOS-7-livecd-Gnome" {
insmod ntfs
insmod loopback
insmod iso9660
set root=(hd0,2)
set isofile='/dan/Downloads/ISO/CentOS-7-livecd-GNOME-x86_64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-livecd-GNOME-x86_64 iso-scan/filename=$isofile rd.live.image
initrd (loop)/isolinux/initrd0.img
}
menuentry "Slackware" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/slackware64-14.2-install-dvd.iso"
loopback loop (hd0,2)$isofile
linux (loop)/kernels/huge.s/bzImage  load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s
kbd=us tz=Europe/Bucharest locale=us_EN.utf8
initrd (loop)/isolinux/initrd.img
}

menuentry "Slackware live" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/slackware64-live-xfce-current.iso"
loopback loop (hd0,2)$isofile
linux (loop)/boot/generic livemedia=/dev/sda2:${isofile} load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 kbd=us tz=Europe/Bucharest locale=us_EN.utf8
initrd (loop)/boot/initrd.img
}
menuentry "ISO Mint 18 Sylvia" {
set isofile="/dan/Downloads/ISO/linuxmint-18.3-mate-64bit.iso"
loopback loop (hd0,2)$isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash noprompt
initrd (loop)/casper/initrd.lz
}





Sursă: https://sourceforge.net/projects/grub2win/

joi, 8 februarie 2018

KDEInit could not launch '/usr/bin/systemsettings5'

 Dacă după modificări ale setărilor în systemsettings5 primiți la închiderea aplicației eroarea:
KDEInit could not launch '/usr/bin/systemsettings5'
puteți rezolva în două moduri.

1- Ștergeți iconița aplicației din panou și adăugați-o din nou, în multe cazuri este suficient.
2- Clic dreapta pe iconița systemsettings5- Properties- Application- Advanced Options- la D-Bus registration schimbați pe none.


Back to top