Dualboot: Gentoo & Ubuntu samalla partitiolla

Yleiset ongelmat, ohjelmien kääntäminen, kernel, lirc jne.
Post Reply
Rene
Yli-ihminen
Posts: 661
Joined: 10.10.2004 3:00
Location: Espoo

Dualboot: Gentoo & Ubuntu samalla partitiolla

Post by Rene »

Osaako joku viisampi neuvoa miten virittäisin grubin niin että saisin buutattua joko Gentoon tai Ubuntun samalta partiolta. Tällähetkellä minulla on Ubuntu asennettuna / juureen ja täydellinen kopio Gentoosta löytyy /data/Gentoo alihakemistosta.

Tarkoitus olisi buutata Gentoohon ja päästä jatkamaan tämän vian selvittelyä. Tähän mennessä piti buutata live-levyltä, ja siirrellä kaikki pois alta ennenkuin sain siirrettyä gentoon filet paikalle. Tämän jälkeen piti vielä rassata grubia jotta sain kaiken buutattua. Tähän menee liikaa aikaa, eikä oikein sovi jos vaimo haluaa päästä telkkua katsomaan. Paras olisi siis dualboot joka lataisi suoraan joko gentoon tain buntun...

Prelude
Säätäjä
Posts: 243
Joined: 02.02.2007 16:45

Re: Dualboot: Gentoo & Ubuntu samalla partitiolla

Post by Prelude »

Hyvä kysymys. En tiedä vastausta, muuta mielelläni sen kuulen jos moista on olemassa.

Ehdotan kuitenkin että et kaiva verta nenästä ihan noin syvältä vaan teet ihan suosiolla uuden partition ja siirtelet gentoon systeemin sinne.
Voit myös koittaa virtuaali konetta tai chroot ympäristöä.

Rene
Yli-ihminen
Posts: 661
Joined: 10.10.2004 3:00
Location: Espoo

Re: Dualboot: Gentoo & Ubuntu samalla partitiolla

Post by Rene »

Prelude wrote:Hyvä kysymys. En tiedä vastausta, muuta mielelläni sen kuulen jos moista on olemassa.

Ehdotan kuitenkin että et kaiva verta nenästä ihan noin syvältä vaan teet ihan suosiolla uuden partition ja siirtelet gentoon systeemin sinne.
Voit myös koittaa virtuaali konetta tai chroot ympäristöä.
Chroottia jo kokeilin, mutta siinä noin /proc /dev jne ovat alla olevan kernelin jäämistöä, eikä siksi toimi kunnolla.. Aito DUalboot olisi kuitenkin tässä kova juttu..

Eikö Grubissa voi muuten määritellä "root" hakemisto tietyltä partitiolta? Ongelmaksi jää kuitenkin että voiko kaksi eri distroa käyttää samaa grubia boottaamiseen..

kurg
Vanhempi asiantuntija
Posts: 175
Joined: 13.04.2006 17:17

Re: Dualboot: Gentoo & Ubuntu samalla partitiolla

Post by kurg »

Boottausmetodi voi olla samanlainen kuin levyimagen boottaamiseen käytetyt scriptit. Tai verkkolevyltä boottiscriptit. Ainakin siis siten onnistuu, että käpistelee initramfs:ää siten, että sen init valitsee chrootilla tietyn hakemiston. Inittihän tekee chrootin juuri ennenkuin antaa ohjat varsinaiselle levyllä olevalle jakelulle. Jaa mutta niin siis saahan init:n nimen/polun määritettyä suoraan kernel-parametrinä bootloaderissa.
init olisi jotain tämän kaltaista (ensimmäinen hätäisellä haulla tullut esimerkki):
http://forums.gentoo.org/viewtopic-t-68 ... art-0.html

Code: Select all

#!/bin/sh 
PATH=/bin 

# Get kernel CMDLINE 
#is this useless?? 
echo " * Mounting /proc" 
mount -t proc none /proc > /dev/null 2>&1 
CMDLINE=`cat /proc/cmdline` 
echo " * Unmounting /proc" 
umount /proc 

# Mount CD device 
echo " * Mounting optical device" 
CDROM="" 
for x in hda hdb hdc hdd cdrom 
do 
  mount -t iso9660 -r /dev/${x} /cdrom > /dev/null 2>&1 
  if [ "$?" = "0" ] 
  then 
    CDROM="${x}" 
    break 
  fi 
done 

# CD no found 
if [ "${CDROM}" == "" ] 
then 
  echo " *** NO optical device found, dropping a shell ***" 
  /bin/sh 
fi 

# Mount root and create read-write directories 
echo " * Mounting root file system" 
mount -v -t squashfs -o loop /cdrom/files/source.img /new > /dev/null 2>&1 
echo " * Mounting /var" 
mount -t tmpfs -o size=32m none /new/var > /dev/null 2>&1 
echo " * Mounting /etc" 
mount -t tmpfs -o size=32m none /new/etc > /dev/null 2>&1 
echo " * Mounting /tmp" 
mount -t tmpfs -o size=32m none /new/tmp > /dev/null 2>&1 
echo " * Mounting /root" 
mount -t tmpfs -o size=32m none /new/root > /dev/null 2>&1 
echo " * Filling directories" 
cd /new/var && tar xpf /cdrom/files/var.tar > /dev/null 2>&1 
cd /new/etc && tar xpf /cdrom/files/etc.tar > /dev/null 2>&1 
cd /new/root && tar xpf /cdrom/files/root.tar > /dev/null 2>&1 

# chroot 
echo " * Executing chroot" 
#find / -xdev -exec rm {} \; 
cd /new 
mount --move . / 
exec chroot . /sbin/init
Käsittääkseni ideana on mountata init:ssä tarvittavat levyt (tai verkkojaot tai imaget tai mitä ikinä) ja sitten päättää init-scripti chroottiin ja antaa ohjat distribuution init:lle. Jos distribuutioilla on omat initramfs:t (jotka sisältävät omat init:nsä ja mounttaamisen tarvittavat rojut (luonnollisesti tavalliset rojut löytyvät ihan perus-perus-initramfs:tä)), niin minkäänlaista riitelyä ei pitäisi syntyä.

Niin tai siis eihän tässä kyseisessä tapauksessa tarvitse edes mountata mitään ylimääräistä, pelkästään antaa tuolle chrootille eri hakemisto.

Gentoolle näyttäs löytyvän aika seikkaperäinen selostus asiasta:
http://en.gentoo-wiki.com/wiki/Initramfs

Mulla itellä on semmonen viritys, että Windows-koneen NTFS-partitiolla on 20GB levyimagetiedosto (Debian).
Linuxia käynnistettäessä Windowsin (Win7) bootloader käynnistää Grub4DOS:n, joka lataa NTFS-levyllä olevan kernelin ja initramfs:n.
Initramfs:n sisällä oleva init on muutoin sama kuin Debianin normi-init, mutta siellä on heti NTFS-aseman mounttauksen (joka normaalisti olisi suoraan linuxin "root", jos "root" sijaitsisi NTFS-asemalla) jälkeen lisätty mount -o loop /debian/debian.disk /root -rivi. /root -kansiosta tulee sitten lopullinen root ja sen hoitaa normaali initin loppuosa ihan kuten normaalitapauksessakin.
Kaikenkukkuraksi viilaamalla VirtualBoxia, voi Windowsista bootata Debianin myös virtuaalisesti kyseiseltä levyimage-tiedostolta :).

antoine
Asiantuntija
Posts: 146
Joined: 20.04.2009 18:29
Location: Hämeenkyrö

Re: Dualboot: Gentoo & Ubuntu samalla partitiolla

Post by antoine »

Yhden pyörivän linux-jakelun sisältä voit muuten buutata suoraan toiseen käyttäen kexeciä (arch linuxissa paketti kexec-tools) - itsekin käytän tätä atv:llä minimaalisen bootup-kernelin sisältä arch linux -systeemiin pääsemiseksi, komennot alla esimerkkinä. Vaikutus on sama kuin täydellä bios-rebootilla: taustalla pyörivä host-ympäristö korvataan kokonaan uudella. Tässäkin tulee toki eteen sama ongelma (ja kurgin esittämä ratkaisu?) root-hakemiston sijainnista osion sisällä.

Code: Select all

kexec --load ./boot/vmlinuz-linux --initrd=./boot/initramfs-linux-fallback.img --command-line="root=/dev/sda5 nosplash vesa video=vesafb"
kexec -e
tvheadend @arch linux @rpi → itunes @imac → apple tv

Post Reply