http://pastebin.com/xR6YYqL2Konservburk skrev:Vad har du för rättigheter på /usr/local/lib/grub/i386-pc/ ? Är den monterad read-only?Heretic skrev:Så här ser det ut om jag kört make install, root eller vanligt
http://pastebin.com/LUDmYRsL
Köra endast linuxkärnan + GNU program
Kategoriregler
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Re: Köra endast linuxkärnan + GNU program
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Jag ser nu att det bara var något med språkfiler som stulade när du körde make install med root-rättigheter. Det viktiga borde redan blivit installerat under /usr/local/. Kolla i /usr/local/sbin/ och se om du hittar grub-install eller något i den stilen. Jag har som sagt inte så bra koll på hur det fungerar med nya grub.
Re: Köra endast linuxkärnan + GNU program
Konservburk skrev:Jag ser nu att det bara var något med språkfiler som stulade när du körde make install med root-rättigheter. Det viktiga borde redan blivit installerat under /usr/local/. Kolla i /usr/local/sbin/ och se om du hittar grub-install eller något i den stilen. Jag har som sagt inte så bra koll på hur det fungerar med nya grub.
Men kan jag inte få tag på gamla GRUB?
Jo, jag hittar grub-install.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
sudo apt-get install grub ger dig gamla grub, till skillnad från sudo apt-get install grub-pc som ger dig nya grub.Heretic skrev:Men kan jag inte få tag på gamla GRUB?
Vill du kompilera från källkod så har du gamla grub här:
ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz
...och nya grub här:
ftp://alpha.gnu.org/gnu/grub/grub-1.98.tar.gz
Re: Köra endast linuxkärnan + GNU program
Men...varför gjorde jag inte sudo apt-get install grub på en gångKonservburk skrev:sudo apt-get install grub ger dig gamla grub, till skillnad från sudo apt-get install grub-pc som ger dig nya grub.Heretic skrev:Men kan jag inte få tag på gamla GRUB?
Vill du kompilera från källkod så har du gamla grub här:
ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz
...och nya grub här:
ftp://alpha.gnu.org/gnu/grub/grub-1.98.tar.gz



Så nu har jag installerat det. Vart ska jag hämta grub nu?
Ursäkta om det tog lite tid med svara, håller på att kolsyra öl

- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Jag utgår ifrån att ditt USB-minne är partitonerat med 1 partiton och att denna partition har vanlig FAT som filsystem. Då ska du först montera USB-minnet och lägga in några stage-filer som grub behöver:Heretic skrev:Men...varför gjorde jag inte sudo apt-get install grub på en gång![]()
![]()
![]()
Så nu har jag installerat det. Vart ska jag hämta grub nu?
Kod: Markera allt
sudo mount /dev/sdb1 /mnt
sudo mkdir -p /mnt/boot/grub
sudo cp /boot/grub/stage* /boot/grub/fat_stage1_5 /mnt/boot/grub/
sudo umount /mnt
Sedan startar du grub:
Kod: Markera allt
sudo grub
Kod: Markera allt
root (hd1,0)
Kod: Markera allt
setup (hd1)
Kod: Markera allt
quit
Re: Köra endast linuxkärnan + GNU program
Tackar. Jag ska göra det imorgon. Sen är det bara busybox som väntar
Men jag förstog inte direkt hur man gjorde så all rörlig data kunde köras på ram?
Jag har ext4 på mitt USB.

Men jag förstog inte direkt hur man gjorde så all rörlig data kunde köras på ram?
Jag har ext4 på mitt USB.
cp: kan inte ta status på "/boot/grub/stage*": Filen eller katalogen finns inte
cp: kan inte ta status på "/boot/grub/fat_stage1_5": Filen eller katalogen finns inte
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Det där var mitt fel. Alla stage-filerna ligger i /usr/lib/grub/i386-pc/, det är bara jag som lagt kopior i min /boot/grub/ sedan tidigare.Heretic skrev:cp: kan inte ta status på "/boot/grub/stage*": Filen eller katalogen finns inte
cp: kan inte ta status på "/boot/grub/fat_stage1_5": Filen eller katalogen finns inte
EDIT: Du ska förstås ha e2fs_stage1_5 istället för fat_stage1_5 om du har ext4 istället för fat som filsystem.
Kod: Markera allt
sudo cp /usr/lib/grub/i386-pc/stage[12] /usr/lib/grub/i386-pc/e2fs_stage1_5 /mnt/boot/grub/
Du skapar en root-filsystemstruktur som du vet fungerar med chroot. Sedan packar du ihop den som initramfs, antingen löst och pekar på den från boot-loadern, eller annars inbakad direkt i kärnavbilden. Vi tar detaljerna när du har fått iordning på grub och busybox.Heretic skrev:Men jag förstog inte direkt hur man gjorde så all rörlig data kunde köras på ram?
Re: Köra endast linuxkärnan + GNU program
Så där ja!
Nu har jag kopierat över och jag har kvar linuxkärnan. Vad är nästa steg?
Nu har jag kopierat över och jag har kvar linuxkärnan. Vad är nästa steg?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Har du testat så att USB-minnet går att boota nu? Alltså så att du kommer så långt som till grub?Heretic skrev:Så där ja!
Nu har jag kopierat över och jag har kvar linuxkärnan. Vad är nästa steg?
Då är det väl dags för att få till busybox. Jag skulle kompilera på egen hand eftersom det ger en hel drös extra valmöjligheter. Annars kan du utgå från den färdigkompilerade busybox som redan följer med ubuntu. Typ så här:
Kod: Markera allt
mkdir -p initramfs/bin
cp /bin/busybox initramfs/bin/
sudo chroot initramfs busybox sh
Re: Köra endast linuxkärnan + GNU program
Jag har ju bara en mapp i /media/disk.
/media/disk/boot/grub
Där ligger e2fs_stage1_5, stage1 och stage2
Ska inte linuxkärnan med?
Ska jag skapa en mapp som ser ut så här: /media/disk/initramfs/bin ?
Kopiera över BB till bin/ och sedan chroot initramfs och busybox och sh ?
Vad menas med -p?
/media/disk/boot/grub
Där ligger e2fs_stage1_5, stage1 och stage2
Ska inte linuxkärnan med?
Ska jag skapa en mapp som ser ut så här: /media/disk/initramfs/bin ?
Kopiera över BB till bin/ och sedan chroot initramfs och busybox och sh ?
Vad menas med -p?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Jo, kärnan ska med tids nog. Men du kan inte boota kärnan utan ett root-filsystem. Det är därför du behöver få till det där med busybox och initramfs först.Heretic skrev:Jag har ju bara en mapp i /media/disk.
/media/disk/boot/grub
Där ligger e2fs_stage1_5, stage1 och stage2
Ska inte linuxkärnan med?
Typ så. Men du behöver inte lägga initramfs-katalogen på USB-minnet om du inte vill.Heretic skrev:Ska jag skapa en mapp som ser ut så här: /media/disk/initramfs/bin ?
Kopiera över BB till bin/ och sedan chroot initramfs och busybox och sh ?
Flaggan -p ser till så att alla kataloger i hela sökvägen skapas. Istället för att köra mkdir a; mkdir a/b; mkdir a/b/c så räcker det med mkdir -p a/b/cHeretic skrev:Vad menas med -p?
Re: Köra endast linuxkärnan + GNU program
Kod: Markera allt
root@desktop-GA-7VAXFS:/media/disk/initramfs/bin# sudo chroot initramfs busybox sh
chroot: kan inte ändra rotkatalog till initramfs: Filen eller katalogen finns inte
root@desktop-GA-7VAXFS:/media/disk/initramfs/bin#
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Du står i fel katalog. Skriv hela sökvägen om du är osäker:Heretic skrev:Så jag förstår direkt inte varför det blir så här. Jag har fört över busybox till /media/disk/initramfs/bin/Kod: Markera allt
root@desktop-GA-7VAXFS:/media/disk/initramfs/bin# sudo chroot initramfs busybox sh chroot: kan inte ändra rotkatalog till initramfs: Filen eller katalogen finns inte root@desktop-GA-7VAXFS:/media/disk/initramfs/bin#
Kod: Markera allt
sudo chroot /media/disk/initramfs /bin/busybox sh
Re: Köra endast linuxkärnan + GNU program
Ok, nu fungerar det. Men ska jag bara skriva exit nu?Konservburk skrev:Du står i fel katalog. Skriv hela sökvägen om du är osäker:Heretic skrev:Så jag förstår direkt inte varför det blir så här. Jag har fört över busybox till /media/disk/initramfs/bin/Kod: Markera allt
root@desktop-GA-7VAXFS:/media/disk/initramfs/bin# sudo chroot initramfs busybox sh chroot: kan inte ändra rotkatalog till initramfs: Filen eller katalogen finns inte root@desktop-GA-7VAXFS:/media/disk/initramfs/bin#
Kod: Markera allt
sudo chroot /media/disk/initramfs /bin/busybox sh
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Ja, eller trycka ctrl-d.Heretic skrev:Ok, nu fungerar det. Men ska jag bara skriva exit nu?
Nu ska du packa ihop din nya root-filstruktur till en intramfs-fil och sedan lägga denna tillsammans med kärnavbilden på USB-minnet. Där ska du även skapa en fil menu.lst som talar om för grub var kärnan och root-filsystemet finns.
Jag återkommer med kommandon strax. Jag ska bara undersöka om något behövs i /dev och i så fall vad.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Jag kom på att du behöver ett init-skript i nya root-filstruktur. Helt enkelt ett vanligt skript som gör saker automatiskt direkt vid boot. Här har du ett förslag:
Spara detta i en fil som som du namnger init och som du lägger direkt i din nya root-filstruktur, dvs en nivå upp från där du redan lagt busybox. Glöm inte att göra init-skriptet körbart. Annars får du kernel panic.
Kod: Markera allt
#!/bin/busybox sh
mkdir -p /dev /proc /sys
mount -t devtmpfs devfs /dev
mkdir -p /dev/pts
mount -t devpts ptsfs /dev/pts
mount -t proc procfs /proc
mount -t sysfs sysfs /sys
exec /bin/busybox sh
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Nu kommer vi till packeteringen. Det går antingen att bygga in direkt i kärnavbilden. Då pekar du bara General Setup -> Initramfs source file på katalogen där din nya root-filstruktur ligger och bygger om bzImage.
Vill du ha det hela löst så gör du följande:
Du ska även lägga in din kärna på samma ställe. Om du inte är säker på att du har lyckats bygga din egen kärna rätt så kan du köra med ubuntus standardkärna till att börja med.
Vill du ha det hela löst så gör du följande:
Kod: Markera allt
cd /sökväg/till/initramfs
find | cpio --quiet -H newc -o | gzip -9 -n > /sökväg/till/usb/boot/initramfs.cpio.gz
Kod: Markera allt
cp /boot/vmlinuz* /sökväg/til/usb/boot/linux.img
Re: Köra endast linuxkärnan + GNU program
Okej, gjorde chmod 777 på denKonservburk skrev:Jag kom på att du behöver ett init-skript i nya root-filstruktur. Helt enkelt ett vanligt skript som gör saker automatiskt direkt vid boot. Här har du ett förslag:
Spara detta i en fil som som du namnger init och som du lägger direkt i din nya root-filstruktur, dvs en nivå upp från där du redan lagt busybox. Glöm inte att göra init-skriptet körbart. Annars får du kernel panic.Kod: Markera allt
#!/bin/busybox sh mkdir -p /dev /proc /sys mount -t devtmpfs devfs /dev mkdir -p /dev/pts mount -t devpts ptsfs /dev/pts mount -t proc procfs /proc mount -t sysfs sysfs /sys exec /bin/busybox sh

- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Köra endast linuxkärnan + GNU program
Slutklämmen blir filen menu.lst som du lägger på USB-minnet i katalogen boot/grub/, dvs samma plats som stage-filerna. Det är en vanlig textfil där du talar om för grub vilken kärna och intitramfs den ska lämna över till. Här har du ett exempel på hur den skulle kunna se ut:
Det gäller förstås att (hd1) måste var rätt disk, men det fattar du säkert redan.
Kod: Markera allt
default 0
timeout 10
title linux
root (hd1)
kernel /boot/linux.img
initrd /boot/initramfs.cpio.gz