Yksi ongelma näyttää vaivaavan Ubuntua usein: 'grub hävisi', 'lakkasi boottaamasta', 'aloitus-sektori tais kadota', 'päivitys sotki' .... kaikissa näissä on usein syynä se että kovalevyn boottaavaa osiota osoittava aloitus-sektori osoittaa väärää osiota. Aloitus-sektorin voi kirjoittaa oikeaksi ohjelmallisesti käyttäen samoja käskyjä kuin tässä hommassa aina käytetään.
- useimmilla käyttäjillä on käytössä vain yksi Ubuntu joten aloitus-sektorin palautusohjelma toimii heille automaattisesti; mikäli Ubuntuja on useampia niin käyttö hieman vaikeutuu mutta käyttö-kykyjäkin on silloin enemmän.
- mikäli ohjelman suorittamiseksi tekee boottaavan USB-muistitikun niin itse ohjelma kannattaa sijoittaa kansioon /home/ubuntu/Desktop. Tällainen muistitikku on todella helppokäyttöinen mikäli koneen saa boottaamaan USB:ltä yksinkertaisesti.
- jos valmista muistitikkua ei ole kannattaa se tehdä toimivassa koneessa gpartedilla tiedostomuotona ext4. Heti lähdettyäsi gpartedista anna käsky: sudo chown -R `whoami`:`whoami` /media. (muuten kopioi-liimaa käsky tästä sillä merkki ` ei ole sama kuin ' eikä sitä näppäimistöiltä aina löydä.)
- ohjelmakoodi ladataan muistitikulle missähyvänsä toimivassa koneessa. Helppo tapa on kopioida-liimata internetistä.
- ohjelman voit tallettaa millä nimellä haluat, mutta eikö NäpäytäMinuaNiinAsetanBoottauksen ole kuvaava kun sitä kerran on tarkoitus näpäyttää?
- ohjelmalle täytyy antaa suoritusoikeus. Suoritusoikeuden antaakseesi käske: sudo chmod uga+x /media/*/ohjelmalle_antamasi_nimi
- ohjelma on skripti. Koskan skriptausta ei asetella ei skriptiä voi kutsua nimellä vaan sitä käytetään nautiluksella. Muuten se on nautilus mikä avautuu kun USB-tikun työntää liittimeen.
- ohjelma toimii vain kun on bootattu live-CD:llä tai "Käynnistyslevyn luonti"-toiminteella tehdyllä boottavalla USB-tikulla. Ohjelman toiminta on estetty mikäli on bootattu kiintolevyltä sillä se on riskialtista. Sensijaan ohjelmakoodin voi kyllä hakea/suorittaa kovalevyltä nautiluksella.
- toistaiseksi ohjelma toimii vain gnome:ssa.
- teen kokoajan tarkistamista ja korjaan tähän alkuperäiseen viestiin mitä tarvitsee; ainahan niitä salahautoja löytyy.
Ohjelman käyttö-ohje:
Boottaa sekaisin oleva kone live-CD:llä siten että muistitikku on irti, ja laita tikku liittimeen kun boottaus on selvä. Tuplanäpäytä ohjelman kuvaketta ja avautuvasta ikkunasta näpäytä: Suorita päätteessä (Run in Terminal). Tai boottaa USB-muistitikulla ja tuplanäpäytä ohjelman kuvaketta.
#!/bin/bash
# mikäli Ubuntuja on vain yksi suunnataan boottaus sille automaattisesti, vain mikäli Ubuntuja on useampia kysytään mille niistä boottaus suunnataan. Windowseja ja muita käyttöjärjestelmiä ei lasketa. 7.12.2010 petteriIII
function tulostamahdolliset {
clear
jarjestelmia=0
echo -e 'Seuraavilla osioilla on Linux ja grub.cfg ja jotka siten ovat mahdollisia:\n'
for osio in `sudo fdisk -l | grep /dev/ | grep Linux | grep -v sivutus | grep -v swap | grep -v tavua | grep -v bytes | awk '{print $1}'`
do
sudo mount $osio /mnt && test -f /mnt/boot/grub/grub.cfg && echo ${osio:5} && sudo umount /mnt && ekanUbuntunOsio=${osio:5} && let jarjestelmia++
done
# jarjestelmia=1 # sen testaamiseksi toimiiko yhden Ubuntun valinta automaattisesti
test $jarjestelmia -eq 0 && echo 'eipä näköpiirissä ole yhtään kelvollista Ubuntua' && sleep 10 && exit
echo ''
}
function unmountmnt {
cd / # umount ei onnistu, jos umountattavaan on cd
sudo echo ""
for mountattu in `sudo mount | grep /mnt | awk '{print $3}'`
do
test -d $mountattu && sudo umount -l $mountattu
done
# echo '/mnt:n mountit on poistettu'
}
# Pääohjelma
test ! `env | grep USERNAME=ubuntu` && echo 'tätä ohjelmaa voi ajaa ainoastaan Ubuntun live-CD:ltä tai "Käynnistyslevyn luonti"-kohdassa tehdyltä USB-muistitikulta' && sleep 10 && exit
sudo clear
unmountmnt
tulostamahdolliset
test $jarjestelmia -ne 1 && read -p "mille osiolle haluat suunnata boottaamisen: " ekanUbuntunOsio
if [ -b /dev/$ekanUbuntunOsio ]; then
echo 'asetan boottauksen tapahtumaan osiolta: '$ekanUbuntunOsio
sudo mount /dev/$ekanUbuntunOsio /mnt
sudo mount -t sysfs none /mnt/sys
sudo mount -t proc none /mnt/proc
sudo mount --bind /dev/ /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
test ! -d /lib64 && test ! -d /mnt/lib64 && sudo chroot /mnt update-grub2
test -d /lib64 && test -d /mnt/lib64 && sudo chroot /mnt update-grub2
sudo grub-install --root-directory=/mnt /dev/${ekanUbuntunOsio:0:3}
echo 'jos hommat onnistuivat niin tulostui: Installation finished. No error reported.'
else
echo 'sellaista laitetta ei ole'
fi
unmountmnt
read -p 'paina enter jatkaakseesi' apu