Howtos/Minimal installation av Ubuntu

Från Ubuntu Sverige

Hoppa till: navigering, sök
Guiden testad på: Ubuntu 10.10


Minimal installation av Ubuntu

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
Personliga verktyg