Howtos/Minimal installation av Ubuntu
Från Ubuntu Sverige
- Guiden testad på: Ubuntu 10.10
Guiden kommer ursprungligen från denna tråden i Ubuntu-se:s forum. Frågor angående guiden tas lämpligast i den tråden.
Innehåll |
[redigera] Bakgrund
Om vi börjar med ett mått på hur stor en installation är, nämligen antal installerade paket. Det värdet går att få fram med följande kommando:
dpkg --get-selections | wc -l
Hur stor är då en helt ny standardinstallation av Ubuntu? En desktop-installation har runt 1300 paket oavsett om den är installerad från den vanliga desktop-skivan eller från alternate-skivan. Det kan skilja något tiotal paket beroende på exempelvis språkval. En Ubuntu-installation från server- eller mini-skivan har bara runt 330 paket. Men det går faktiskt att plocka bort ytterligare 200 paket och fortfarande ha ett fullt fungerande och fristående system. En så kallad minbase-installation har bara runt 110 paket.
Förutom att en minbase-installation är överlägset minst så är den även den mest spännande med tanke på hur installationen går till. Den går nämligen att genomföra direkt från vilken annan Linuxinstallation eller live-skiva som helst.
[redigera] Förberedelser
Detta exempel visar hur det kan gå till när minbase-installationen genomförs från Ubuntu desktop-skivan. Börja med att boota från skivan och välj Try Ubuntu för att komma in i live-läget. Använd sedan gparted för att förbereda utrymme åt installationen. I det här exemplet valdes att skapa två partitioner med filsystemet ext4, en för systemet och en för hemkatalogerna, samt en swap-partition. Det räcker förstås med en enda partition för de som inte bryr sig om swap eller att separera hemkatalogerna från resten av systemet.
Nu är det dags att öppna en terminal och börja installera på riktigt. Det hade förstås gått bra att även ordna med partitionerna i terminalen för de som föredrar det eller för de som använder ett system där gparted saknas.
Vi ska använda programmet debootstrap för att bygga upp ett fullt fungerande minimalt Ubuntu-system från grunden utan att ta med något annat än de absolut nödvändiga paketen. Från en live-skiva är det inga svårigheter att installera debootstrap:
sudo apt-get install debootstrap
De som utgår från ett system där debootstrap inte finns att tillgå via en pakethanterare kan istället hämta programmet via Subversion med kommandot:
svn co svn://svn.debian.org/d-i/trunk/packages/debootstrap
[redigera] Installation
Då är äntligen alla förberedelser klara. Det är dags att tillfälligt montera den nya systempartitionen någonstans. I detta exempel används /mnt som monteringspunkt. Här är den nya systempartitonen /dev/sda1, men vad just din heter vet bara du. Se till att montera rätt så att inget viktigt blir överskrivet!
sudo mount /dev/sda1 /mnt
Nu är vi redo att starta själva installationen:
sudo debootstrap --arch=i386 --variant=minbase --include=linux-image-generic,grub-pc,dhcp3-client,console-setup,sudo,gpgv maverick /mnt http://se.archive.ubuntu.com/ubuntu/
Här anger --variant=minbase att det inte ska tas med några andra paket än de absolut nödvändiga. Det kommer dock att resultera i ett system som inte ens går att boota på egen hand eftersom det till och med saknar egen kärna. Jag har därför via --include= valt att ta med ytterligare några paket:
- linux-image-generic: behövs för att få ett fristående system.
- grub-pc: behövs endast om du inte redan har en starthanterare.
- dhcp3-client: behövs för att kunna få en dynamisk IP-adress.
- console-setup: behövs för svensk tangentbordslayout i konsollen.
- sudo: behövs för att kunna få root-rättigheter utan root-användare.
- gpgv: behövs för att verifiera att paketkällor är säkra.
De som redan har en starthanterare, använder statisk IP-adress, inte bryr sig om svensk tangentbordslayout, nöjer sig med att använda det vanliga root-kontot och struntar i att kontrollera om paketkällorna är säkra klarar sig med att bara inkludera själva Linux-kärnan som extra paket.
Här väljs att installera Ubuntu 10.10 genom att ange ordet maverick. De som vill installera en annan version kan enkelt göra det genom att för till exempel Ubuntu 10.04 ange ordet lucid istället.
Anges inte --arch= så används utmatningen från kommandot dpkg --print-architecture för att avgöra om den nya installationen ska bli 32- eller 64-bitars, vilket i praktiken innebär samma som systemet där debootstrap körs. Det går även att som i detta fallet uttryckligen ange i386 för att installera 32-bitars, eller amd64 för att installera 64-bitars.
Beroende på din uppkoppling kan debootstrap ta en stund på sig. När installationen är klar går det att hoppa in i det nya systemet med hjälp av kommandot chroot. De som nöjer sig med att använda systemet på det sättet behöver inte ens ta med Linux-kärnan som extra paket.
sudo chroot /mnt env - bash
[redigera] Konfiguration
[redigera] Filsystem
Väl inne i det nya systemet vill vi få tillgång till hårdvaran, framförallt hårddisken, vilket ordnas så här:
mount -t devtmpfs none /dev
De som har förberett en swap-partition eller separat /home-partition vill se till att de monteras under uppstarten genom att lägga till lämpliga rader i filen /etc/fstab.
Först kan vi skapa en tillfällig skal-funktion för att slippa skriva om eller ändra i ett krångligt kommando flera gånger. Det viktiga är att alla UUID blir rätt. Alternativet är att klippa och klistra in informationen i /etc/fstab.
fstab()(echo UUID=$(blkid -s UUID -o value $1) $2 $(blkid -s TYPE -o value $1) $3 0 $4 >>/etc/fstab)
Sedan används den nya skalfunktionen för att lägga till lämpliga rader. I exemplet är systempartitionen /dev/sda1, swap-partitionen är /dev/sda2 och /home-partitionen är /dev/sda3. Exakt hur det är i ditt fall vet bara du.
fstab /dev/sda1 / errors=remount-ro 1 fstab /dev/sda2 none sw 0 fstab /dev/sda3 /home defaults 2
Kontrollera sedan att monteringen fungerar som den ska:
mount -a
Fungerar det inte bör du dubbelkolla dina ändringar med kommandot
cat /etc/fstab
Det kan se ut ungefär så här, men med helt andra UUID-värden:
# UNCONFIGURED FSTAB FOR BASE SYSTEM UUID=085aa054-7dac-423b-ae4b-5b06b075e48c / ext4 errors=remount-ro 0 1 UUID=eab7b679-14fb-47d8-a04b-aeccb4d0693a none swap sw 0 0 UUID=a97d7f9a-189e-4e1c-94ba-ef16b21d1371 /home ext4 defaults 0 2
[redigera] Starthanterare
Vi som inte redan hade en starthanterare sedan tidigare vill nu göra det nya systemet startbart. Jag väljer att installera den nya starthanteraren i början av första hårddisken (/dev/sda), men exakt var du ska installera den vet du bara själv. Var återigen noga med att det blir rätt så att inget viktigt blir överskrivet!
grub-install /dev/sda update-grub
De som redan hade en starthanterare ändrar istället dess inställningar för att få det nya systemet att boota. Exakt hur det går till beror helt på vilken det rör sig om. Det som alltid gäller är att tala om för starthanteraren att kärnan ligger som /vmlinuz på den nya systempartitionen och att ramdisken ligger som /initrd.img på samma partition, samt att den ska tala om för kärnan vilken partition detta är via parametern root=
[redigera] Användare
Innan vi startar systemet behöver vi ordna inloggning. Vi som har valt att installera sudo skapar gruppen admin och lägger till en rad i filen /etc/sudoers som ger alla gruppens medlemmar administratörsrättigheter:
addgroup --system admin echo '%admin ALL=(ALL) ALL' >>/etc/sudoers
Skapa sedan en ny användare:
adduser konservburk
Glöm inte att lägga till den nya användaren i admin-gruppen:
adduser konservburk admin
De som inte har installerat sudo eller som ändå nöjer sig med det vanliga root-kontot får inte glömma att sätta ett root-lösenord, vilket vi andra inte behöver göra:
passwd
Det går faktiskt redan nu att starta upp det nya systemet. Jag väljer dock att först genomföra ytterligare några små justeringar.
[redigera] Lokalisering
De som vill ha svensk tangentbordslayout i konsollen måste ändra i filen /etc/default/console-setup och sedan uppdatera med kommandot setupcon. Det är lika bra att ordna med det redan nu så att det blir svensk tangentbordslayout även vid den första inloggningen:
sed -i '/XKBLAYOUT=/s/=.*/="se"/' /etc/default/console-setup setupcon --force
De som inte nöjer sig med enbart engelska kan även byta systemspråk till svenska med följande kommandon:
locale-gen sv_SE.UTF-8 echo LANG=sv_SE.UTF-8 >/etc/default/locale
De som inte nöjer sig med zulu-tid kan ställa in en mer lämplig tidzon:
ln -sf /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
[redigera] Nätverk
De som har installerat dhcp3-client vill ställa in så att ip-adressen tilldelas automatiskt:
echo auto eth0 >>/etc/network/interfaces echo iface eth0 inet dhcp >>/etc/network/interfaces
De som kör med statisk ip-adress ändrar själva i filen /etc/network/interfaces på lämpligt sätt.
De som inte vill att datorn ska heta ubuntu kan nu passa på att välja ett annat datornamn:
echo datornamn >/etc/hostname
Det är även lämpligt att skapa filen /etc/hosts för att vissa program som till exempel sudo inte ska klaga:
echo 127.0.0.1 localhost >>/etc/hosts echo 127.0.1.1 $(cat /etc/hostname) >>/etc/hosts
[redigera] Pakethantering
Det kan vara en god idé att ändra inställningarna för apt så att endast beroenden som faktiskt krävs installeras automatiskt:
echo 'APT { Install-Recommends "false"; Install-Suggests "false"; };' >/etc/apt/apt.conf.d/06norecommends
Det är också läge att se över paketkällorna i filen /etc/apt/sources.list som annars är mycket sparsamma. Jag väljer att med ett krångligt kommando lägga till ett helt gäng källor för bland annat säkerhetsuppdateringar:
sed -i '/\s*main$/{s/$/ restricted universe multiverse/;h;s/^deb/&-src/;H;g;s/\s*main/-updates&/g;H;s/\.archive/curity/g;s/-updates/-security/g;H;g}' /etc/apt/sources.list
De som inte gillar komplicerade kommandon kan ändra i filen för hand istället. I exemplet ser den ut så här:
deb http://se.archive.ubuntu.com/ubuntu maverick main restricted universe multiverse deb-src http://se.archive.ubuntu.com/ubuntu maverick main restricted universe multiverse deb http://se.archive.ubuntu.com/ubuntu maverick-updates main restricted universe multiverse deb-src http://se.archive.ubuntu.com/ubuntu maverick-updates main restricted universe multiverse deb http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse
Uppdatera därefter förråden:
apt-get update
[redigera] Första uppstarten
Nu är det äntligen dags att start om. Tänk dock på att avmontera, avsluta chroot och avmontera igen först:
umount -a exit sudo umount /mnt sudo reboot
Förhoppningsvis startar allt upp som det ska. När du för första gången väl är inne i det nya systemet på riktigt så är det lämpligt att direkt börja med en paketuppgradering:
sudo apt-get dist-upgrade
De som kör med det vanliga root-kontot skippar förstås sudo.
Nu är vi faktiskt där, ett fullt fungerande minimalt Ubuntu-system!
[redigera] Varianter av Ubuntu
En minbase-installation är visserligen fullt fungerande och minimal, men den officiella minimala Ubuntu-installationen kräver faktiskt ytterligare ett 30-tal paket. Dessa installeras dock enkelt för den som vill:
sudo apt-get install ubuntu-minimal
Nästa steg är ytterligare ett 60-tal paket för att helt nå upp till officiell ubuntu-standard:
sudo apt-get install ubuntu-standard
De som dessutom vill nå upp till officiell ubuntu-standard även när det gäller det svenska språkstödet behöver installera ytterligare ett par paket:
sudo apt-get install language-pack-sv language-support-sv
Vi är nu uppe i nästan dubbelt så många paket som vår minbase-installation, men fortfarande inte ens 2/3 av vad en installation från mini-skivan ger oss.
[redigera] Analys av installationstorlekar
En installation från Ubuntus mini-cd går att få ner till runt 200 paket. Det inkluderar ubuntu-minimal, men inte ubuntu-standard.
Att installera ubuntu-minimal från den ursprungliga minbase-installationen ger följande utökning:
apt-utils bzip2 console-setup console-terminus eject gnupg iproute iputils-ping kbd less libcap2 libexpat1 libnewt0.52 libpopt0 libsqlite3-0 lsb-release mime-support netbase netcat-openbsd ntpdate python python-central python2.6 rsyslog ubuntu-keyring ubuntu-minimal ureadahead vim-common vim-tiny whiptail xkb-data
Den minsta möjliga installationen från mini-skivan inkluderar utöver en minbase-installation följande paket:
apt-xapian-index aptitude cron dictionaries-common dmidecode dmsetup file hunspell-en-ca hunspell-en-us installation-report iso-codes language-pack-en language-pack-en-base language-pack-gnome-en language-pack-gnome-en-base language-support-en language-support-writing-en laptop-detect libatm1 libboost-iostreams1.42.0 libclass-accessor-perl libcwidget3 libept1 libfribidi0 libgdbm3 libio-string-perl liblockfile1 libmagic1 libparse-debianchangelog-perl libsigc++-2.0-0c2a libsub-name-perl libtimedate-perl libxapian15 linux-generic linux-headers-2.6.35-22 linux-headers-2.6.35-22-generic linux-headers-generic lockfile-progs logrotate make myspell-en-au myspell-en-gb myspell-en-za os-prober perl perl-modules python-apt python-debian python-support python-xapian tasksel tasksel-data usbutils wamerican wbritish
