GRUB.conf identifikace vybrané možnosti v systému
Zdravím,
počítač používám ke spoustě velice odlišných a sepcifických věcí (Oracle Rac, Siebel, vzdělvání apod.) a líbilo by se mi nejen vybrat OS který spouštím ale i účel za kterým ho spouštím, uvedu příklad - chtěl bych něco podobného:
title Oracle Linux Server (2.6.32-220.el6.x86_64) NORMAL
root (hd0,7)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM AZOR_TYPE=NORMAL
initrd /initramfs-2.6.32-220.el6.x86_64.img
title Oracle Linux Server (2.6.32-220.el6.x86_64) Siebel
root (hd0,7)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us AZOR_TYPE=SIEBEL rd_NO_DM
initrd /initramfs-2.6.32-220.el6.x86_64.img
title Oracle Linux Server (2.6.32-220.el6.x86_64) RAC
root (hd0,7)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us AZOR_TYPE=RAC rd_NO_DM
initrd /initramfs-2.6.32-220.el6.x86_64.img
Tedy jediné co se liší je AZOR_TYPE (či cokoliv) což by mohla být něco jako systémová proměná a já bych si v shell scriptech pak pomocí $AZOR_TYPE vytvořil ruzné scripty a pospouštěl si co ke každému typu potřebuju.
Problém je v tom, že tohle mi GRUB nevezme a já jsem nenašel žádný parametr, možnost jak si předat ID, jméno - cokoliv co by mi umožnilo identifikovat v shell scripech, která z možností byla vybrána. I když pevně věřím že v případě nouze bych to asi mohl udělat znásilněním nějakého existujícího parametru, například LANG na základě kterého jsem se patrně špatně domníval ze by v GRUBu mohlo zafungovat přiřazení nějaké env. variable.
Děkuju.
http://www.gnu.org/software/grub/manual/html_node/ chosen.html
Tohle vypadalo dobře, ale žádnou "chosen" proměnnou tu nemám :/
Jen lehkej nástřel: Co třeba místo proměnné vytvořit ramdisk s pokaždé jinou kapacitou? Nebo maličkej ramdisk 1 MB s pokaždé jiným názvem?
Pavel
DIky za odpoved, to je asi mozné a jedna z těch měné čistných variant, já věřím že existuje čistá. Nikdy jsem v GRUBu nic podobného nedělal (a budu rád za link) ale pokud to jde, tak to určitě muže být cesta jak to udělat - i když bych prvně preferoval co jsem psal vejš, to LANG vypadá na systémovou proměnnou, podobně jako KEYBOARDTYPE, takže bych se prvně pokusil udělat to přes to (nastavit na JAPONŠTINU v GRUBU, identifikovat systém po startup a pak to hodit zpátky)
Já s GRUBem běžně nedělám, ... Nastínil jsem ti možnost jak to (snad) vyřešit. Bude fajn když sem dáš potom vědět jaký je tvoje funkční řešení - tohle by se mohlo docela hodit.
Pavel
Určitě, kdyby nestál manual ke grubu za piču (doslovat, vzhledem k tomu čemu je to určené by to chtělo více příkladu a přesněji definováno jaká je syntaxe apod., neni to word - jednou to člověk zmrví a pak aby to obnovoval přes commandlajndy a ze záloho a každý pokus znamená restart (nebo ve virtual boxu)) nebo se to snadno googlilo (slovo "choosen" je fakt super :/) už bych to určitě měl ;)
Jinak třeba pro ten RAC potřebuju na tři plochy tři virtualni boxy (2x orale linux, 1x ubuntu) a tohle bych si rád vybral pouhým kliknutím hned při startu kompu a zatim co si to nabíhá bych mohl dělat něco užitečného, ne čekat až mi naběhne jeden OS, který bude vyžadovat ještě mou iterakci, co budu chcít dělat a podle toho něco spustil.
Jak to tak po tobě čtu, pokud půjde přes GRUB vytvořit během bootování malej ramdisk, pak to problém nebude a nějakým skriptem si už z běžícího OS ošetříš název/velikost ramdisku a spustíš požadovaný aplikace. Nevidím v tom problém.
Pavel
Tak vypadá, že jsem to vyřešil, neni to nic hezkého ale co - bud to prej de přes GRUB2 (imho nemám) kde jsou nějaké možnosti custom scriptu, složité jako prase. Nebo alternativně v linuxu předat parametr jádru pak už byla otázka jen jakou promněnou znásilnit, abych ji mohl libovolně nastavit v GRUBU, nakonec to odneslo kstack=666, což jak pevně doufám a v manuálu jsem přečetl je počet slov vytisknutých s logu/raw v případě crashe, nastaví to pak kernel parametr na kernel.kstack_depth_to_print = 666 a to už si pak ošéfuji v systému.
Tedy vyřešeno, jak na windows nevím (ale tam mi to tolik nezajímá)