HOW-TO: Install Debian using debootstrap.
Using a live cd or existing Linux install to install Debian GNU/Linux using debootstrap.
Updated: 2015-01-11 debootstrap is used to create a Debian base system from scratch, without requiring the availability of dpkg or apt. It does this by downloading .deb files from a mirror site, and carefully unpacking them into a directory which can eventually be chrooted into. This guide is intended to be a basic installation for those who wish to run Debian's unstable branch, or run a minimal system. It does not cover partitioning schemes, file system details, or proprietary drivers. For this guide, we will assume the following: Branch: unstable (codename 'Sid') Architecture: amd64 Boot Style: BIOS / MBR Target partition: /dev/sda1 Filesystem: ext4 Network Interface: eth0 Debian Mirror: http://ftp.us.debian.org/debian - (Mirror List: http://www.debian.org/mirror/list) debootstrap version: 1.0.66 Dependencies: binutils, perl, tar, wget (if not using a Debian based distro) Installing debootstrap from a Debian based distribution For Debian based distributions, this will be as simple as: Code:
root@host# apt-get update Installing debootstrap from a non-Debian based distribution If you are installing from a non-Debian based distribution, you distribution may or may not have debootstrap available. To get debootstrap, you can download it directly from a Debian mirror. To view the packages available, use a web browser, or use this command: Code:
root@host# wget --no-remove-listing -O /tmp/deboot.html -q http://ftp.us.debian.org/debian/pool/main/d/debootstrap && grep 'all.deb' /tmp/deboot.html | awk -F 'href' '{print $2}' | cut -d '"' -f2 Look for the latest version listed, and download: Code:
root@host# wget -P /tmp/debootstrap http://ftp.us.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.66_all.deb Code:
root@host# cd /tmp/debootstrap Code:
root@host# ln -s /tmp/debootstrap/usr/sbin/debootstrap /usr/sbin/debootstrap Setup the target partition for install Create your filesystem, your mount point, and mount your partition: Code:
root@host# mkfs.ext4 -L Debian /dev/sda1 Installing the base system with network access Here, debootstrap will download, extract and install the base system packages to our target partition. debootstrap only fetches the base system without a kernel or bootloader, so we'll use the --include option to fetch those too. If you need packages not found in the main repository, you can include packages from contrib and non-free with this option --components main,contrib,non-free Usage: debootstrap --include <additional_packages,comma-separated> --arch <architecture> <release> <target> <mirror> Code:
root@host# debootstrap --include linux-image-amd64,grub-pc,locales --arch amd64 unstable /mnt/deboot http://ftp.us.debian.org/debian Code:
root@host# debootstrap --arch amd64 raring /mnt/deboot http://archive.ubuntu.com/ubuntu Installing the base system without network access, or to a different architecture If you do not have network or Internet access, you can use the --foreign option to start installation on a machine with network access, and finish on the machine that does not. This is also useful if your target machine is a different architecture than your host machine. Since your target won't have network access, make sure to use the --include option to have debootstrap fetch your kernel, bootloader, and any other packages you will want installed. Create a temporary directory, and use debootstrap to fetch the packages for the first stage of the install. Code:
root@host# mkdir /home/<user-name>/deboot Code:
root@host# debootstrap --foreign --include linux-image-powerpc,yaboot,locales --arch powerpc unstable /home/<user-name>/deboot http://ftp.us.debian.org/debian Code:
root@host# cd /home/<user-name>/deboot Code:
root@host# cd /mnt/deboot Code:
root@host# chroot /mnt/deboot /bin/bash Preparing the chroot environment Copy the mounted file systems table. It keeps the df command happy. (Will be overwritten upon boot.) Code:
root@host# cp /etc/mtab /mnt/deboot/etc/mtab Code:
root@host# mount -o bind /dev /mnt/deboot/dev Continuing the installation within chroot Entering the chroot environment: Code:
root@host# chroot /mnt/deboot /bin/bash Code:
root@chroot# grub-install /dev/sda Code:
root@chroot# blkid /dev/sda1 Code:
UUID=79168060-9d9c-4cf6-8ee9-bb846aee589b / ext4 defaults,errors=remount-ro 0 1 Code:
root@chroot# echo "<name-your-host>" > /etc/hostname Code:
root@chroot# dpkg-reconfigure locales Code:
root@chroot# passwd Code:
root@chroot# adduser <your-user-name> Setting up the network (eth0): Some basic tools are already included to manage your network, but nothing is configured for you yet. If you plan on installing a desktop environment, that may bring in tools such as network-manager or wicd to automatically configure your network. You can bring up your network manually each boot with the tools dhclient or ifconfig. For a dynamic IP (DHCP): Code:
root@host# dhclient -v eth0 Code:
root@host# ifconfig -v eth0 192.0.2.7 netmask 255.255.255.0 up For DHCP, the /etc/network/interfaces file should look like this: Code:
# This file describes the network interfaces available on your system Code:
# This file describes the network interfaces available on your system Install a display manager and a window manager Unless you're using this for a headless server, might be nice to have some sort of desktop to play with. Don't forget to update the package manager if you wish to install new packages: Code:
root@chroot# apt-get update Code:
root@chroot# apt-get install xserver-xorg wdm fluxbox xterm Code:
root@chroot# tasksel --new-install Finishing the install Clean the package cache: Code:
root@chroot# apt-get clean Code:
root@chroot# update-initramfs -u -k all Code:
root@chroot# exit -- Enjoy your fresh install of Debian! -- Additional Info Approx space used after base install: 491 MiB Approx bandwidth used: 94 MiB Approx space used after Fluxbox / wdm install: 714 MiB Approx bandwidth used including base: 152 MiB Approx space used after XFCE4 / lightdm install: 1077 MiB Approx bandwidth used including base: 266 MiB Approx space used after KDE 4 Standard install: 2036 MiB Approx bandwidth used including base: 597 MiB Approx space used after Gnome3 full install: 3329 MiB Approx bandwidth used including base: 994 MiB Troubleshooting Code:
W: Failure trying to run: chroot /mnt/deboot dpkg --force-depends --install /var/cache/apt/archives..... Code:
root@host# export PATH=$PATH:/sbin Code:
E: No pkgdetails available; either install perl, or pkgdetails.c from the base-installer source package ---------------------------------------------------------------------------------------- Debian doesn't boot! Code:
fsck exited with status code 0 Code:
root@chroot# update-initramfs -u -k all |
Now we have it here at LQ.
Cool! Not too many people use debootstrap but I've tried it & works great. The last time I did it I had to use 2 different tutorials because some of the commands didn't work. I'll try yours later. |
Let me know how it works for you. I've tested using Aptosid, Fedora, Arch and Slax.
|
I will, but I'm sure that it works I have to bookmark it so I don't have to search for it later.
|
A couple of comments. Firstly, debootstrap won't work from a cdrom/DVDrom; if you've got one and no internet connection, you can do something like
Code:
# mount /dev/sr0 /cdrom Code:
# debootstrap --unpack-tarball=/home/Wocky/linux.tgz wheezy /mnt/deboot |
Quote:
For example, I am running debian on live USB. It is /dev/sdg and it's partititon is /dev/sdg1. Will I be able to make my target partition /dev/sda1 which is a seperate hdd which has no OS or anything? |
No need for you to deboostrap the live-cd has an installer, but you need to have unallocated space to install to unless you're using the whole hdd.
|
Quote:
|
Thank you for your reply replica9000!
I have just a few more questions: Quote:
I have a 160gb hdd and I was looking to install a distro to a 40gb partition. Quote:
I imagine I have to substitute 'arch' for something else. I have an amd64 processor. Incidentally, would I be OK to simply install 'Sid' anyway, even if it is the unstable version? Quote:
Code:
root@chroot# passwd mypassword Quote:
|
Quote:
Quote:
Quote:
Quote:
Code:
passwd root |
Quote:
Quote:
Code:
debootstrap --include=linux-image-amd64,grub-pc --arch amd64 unstable /mnt/deboot http://ftp.us.debian.org/debian Quote:
Quote:
|
Quote:
However, since the example target partition is 'sda1' then I can simply create a partition of my choice on a hdd and use that as the example partition. Thank you very much!! The debootstrap program is the way to go! |
Quote:
|
Quote:
Quote:
|
That sounds good but I believe that it's a little advanced for a newbie.
|
I have used this method but have encountered a problem. The distro won't open up when I boot up my hard disk.
I have a black screen appearing with: Code:
Debian GNU/linux 7 host ttyl Code:
root@host:"# Can anyone help please? |
@Higgsboson -- I did try to tell you this wasn't the way to go...
Have you installed xorg & some some of desktop environment/window manager? Did you read post #10? Use tasksel to install a desktop exactly how the installer would have done it (without your intervention and much quicker): https://wiki.debian.org/DebianDesktop/Tasks |
Quote:
I'm just wondering why the OS allows me to login but doesn't open up the desktop. When I boot up my live debian USB the hdd with the new OS doesn't mount automatically. When I mount the correct partition, it shows there is 3.9GB of data on it. This must mean the OS has been installed. However, I'm wondering why the gnome desktop won't open up. |
You shouldn't use the X server (graphical desktop) as root -- it is fundamentally insecure.
Generate a normal user for day-to-day tasks using the `adduser` command. If you have a console login and you have used tasksel to install GNOME then you can start the desktop using: Code:
startx If you have installed GNOME manually, you may also need GDM (although I'm pretty sure this is part of the GNOME package in Debian) and you may need to enable it. With systemd I would use: Code:
# systemctl enable gdm3 http://forums.debian.net/viewtopic.php?f=6&t=119768 I'm not sure how to do this under SysVinit; try using: Code:
# chkconfig gdm3 on |
Quote:
1. Since I already have a hdd with an ext4 partition, at this stage I used the following commands (my partition is also sda1): Code:
root@host# mkdir /mnt/deboot Code:
root@host# mount -t ext4 /dev/sda1 /mnt/deboot Since I'm using a live USB without persistence, unfortunately I can't go into debootstrap.log for error messages. Quote:
However, whilst the package was installing, I did read some error messages about not having relevant firmware. So what would be the command to get the debian_non-free version? I'm thinking of using debootstrap again for a different target partition on my hdd. Once I have the answers to the above questions, then I should be good to go. 3. The debootstrap method binds and copies files from the host OS which is very economical. In my particular situation, I'm using a slightly altered debian live USB. So I'm hoping that the relevant host files haven't had some records deleted. However, that's just my situation and shouldn't affect others who didn't make their live USB with the Yumi program. |
Like Head_on_a_stick suggested, gdm3 wasn't automatically installed, since gnome-shell doesn't seem to depend on it. You can install it using apt-get install gdm3 .
Quote:
I just did a test install of stable in a virtual machine, only doing apt-get install gdm3 gnome-shell, and everything appears fine. |
Quote:
Also, gdm3 is to do with the shell. But somehow the shell isn't loading. I used: Code:
apt-get install gdm3 The update worked which must mean the network connection is fine. I also did 'apt-get upgrade'. But the repeated error message is 'could not resolve ftp.us.debian.org' I then tried: Code:
apt-get install gnome-shell So this seems like it's got all the gnome files but for some reason it's not activating. Even so, this clearly shows debootstrap works. I'm just wondering what the problem is in my scenario. |
Quote:
Code:
# The primary network interface |
Quote:
The output for 'ifconfig' is: 'Link encap:Local loopback inet addr: 127. 'etc...' Mask:'etc...' inet6addr: ::1/128 Scope:Host RX Packets: 0 errors:0 dropped:0 overruns:0 'etc...' My network connection is DHCP as far as I know. Does that mean there's a problem with a network connection? |
This may help http://www.debian.org/releases/stable/i386/apds03.html
Quote:
Code:
apt-cache search firmware |
Quote:
However, it is very complicated for me. It seems the debootstrap tutorial on this thread is a much simpler version. And replica9000 has tested it. I did find on the debian site, it asks you to use a local mirror site. I was using Code:
ftp.us.debian.org/debian/ Code:
ftp.uk.debian.org/debian/ Quote:
I could run debootstrap and install onto a different partition on my hdd. I could then use the UK mirror for downloads. Then I could install debian 7.7 non-free rather than debian 7.7 stable. But I don't know how to substitute the following command for the non-free version: Code:
debootstrap --include=linux-image-amd64,grub-pc --arch amd64 stable /mnt/deboot http://ftp.uk.debian.org/debian Will debian 7.7 non-free sort out my firmware problem, do you think? Also, is trying the above method a viable option? |
The debian website also mentions
'D.3.4.4. Configure Networking' on their debootsrap tutorial. http://www.debian.org/releases/stable/i386/apds03.html I'm wondering if I need to do something like that? |
@Higgsboson -- this is getting really silly now.
Just download an unofficial netinstall .iso with the non-free firmware included and install using the "normal" method (ie, burn the image to a CD and boot up from that): http://ftp.acc.umu.se/mirror/cdimage...ding-firmware/ You seem intent on using debbootstrap (against all advice to the contrary) and then complain because it's "very complicated"... If you had used the same method of installation that 99% of Debian users employ you would be using your Debian system by now rather than making countless posts on a support forum. http://www.skidmore.edu/~pdwyer/e/eoc/help_vampire.htm |
Quote:
Quote:
The programs will be a complete waste if nobody uses them. Their benefits never be understood. I'm just trying to learn about the debootstrap program and see what benefits it can offer. |
Quote:
Quote:
|
Quote:
Quote:
|
Quote:
Code:
auto lo However, before I did the debootstrap install I partitioned my hdd with gparted. But after the install, I realised I was getting an error code for all my partitions: Code:
root@debian:/# fdisk -l /dev/sda1 Funny thing is, debootstrap did seem to have a successful install albeit without a shell and no apparent network connection. Once I've sorted out the partition problem, I might well re-install with debootstrap and copy /etc/resolv.conf from the host system like you suggested. Thanks for your help! |
Quote:
Code:
# This file describes the network interfaces available on your system Quote:
|
@higgsbosn
I think that you jumped into an arena which is too advanced for you. Learning how to install from cd would be 1st step. chrooting & recovering a broken system would be 2nd Debootstrapping 3rd Then installing LFS, Gentoo or Arch. |
Quote:
Quote:
|
Quote:
|
Quote:
Assuming /dev/sdc is an empty USB drive: Code:
dd if=debian-7.7.0-amd64-netinst.iso of=/dev/sdc |
Quote:
|
Quote:
Unfortunately, the live USB version I have comes without debian-installer. 'Apt-get install debian-installer' doesn't work because Synaptic shows it's just a bunch of page files. The proper debian-installer is a .iso file. I can fetch that with 'apt-get install' cmd. But in order to extract the debian-installer .iso and install it - I need debian installer! That's why I turned to debootstrap. However, I have a partitioned hdd in ext4 format and a debian live USB without debian-installer. Any possibility I could install a debian OS onto a hard disk without a cd? |
Quote:
I just don't have the rw discs yet. Never used the rw function on my dvd player. I don't even know if it actually works! I have a debian live USB. The debian OS was installed onto USB via a downloaded 'bootloader' program. There wasn't any burning of discs needed. |
What menu options do you get when you first boot the usb?
|
Quote:
You do not "extract" the .iso, you just transfer the contents to the USB stick. As I have already told you, the "debian-installer" package is not the Debian Installer -- it is the documentation for the installer. Download the netinstall .iso and then use this command: Code:
sudo dd if=netinstall.iso of=/dev/sdb bs=4096;sync Once the `dd` command has finished, you can reboot the computer (with the stick in) and select the USB stick from your firmware (BIOS) menu -- it will then boot up from the USB stick and run the installer. |
Quote:
If I want to be 'root', I open the root terminal - no password is needed. My debian live USB was installed via Yumi bootloader (from pendrivelinux). It's a scaled down version of the proper live debian USB because it doesn't have debian installer. There are few bootloaders which will allow you to install linux onto a USB from a Windows environment. And even if you use the well-known Unetbootin program, it will see your well-known Sandisk USB as a hard disk and therefore will not run. |
Quote:
The only linux OS I have is on the live USB I'm using right now. I'm not sure I can transfer a .iso file onto the USB while I'm using the same USB as the operating system. |
Quote:
You could transfer it to a different USB stick though. If you have a working Windows system, you can use the "USBWriter" utility to transfer the .iso: http://sourceforge.net/p/usbwriter/wiki/Documentation/ |
Quote:
|
Quote:
|
Quote:
|
To help Higgsboson out I continued over on the ops other thread. This installs the full gnome desktop with working internet after installing the base system. What it doesn't do is install grub, add-users, set time zone, and set locales.
http://www.linuxquestions.org/questi...5/#post5296741 |
I have had success with debootstrap in installing a debian stable release onto a hard disk partition without installing from cd-rom!
I now have dvd-rw discs to make a normall installation, but the optical drive is writing too fast. Also, for some reason my debian OS doesn't have debian-installer. So rather than spending days finding out how to remedy the problem, I'd like to use debootstrap again. I have the commands to use debootstrap set out below. It's the OP's original 'HOW-TO' modified for my situation. I don't really understand the commands but have a vague idea what it's doing. Can anyone please look through the source and advise if it's correct and in the right order? Many thanks. 1. Install debootstrap: Code:
root@host# apt-get update Code:
root@host# mkdir /mnt/deboot Code:
root@host# debootstrap --include=linux-image-amd64,grub-pc --arch amd64 stable main contrib nonfree /mnt/deboot http://ftp.uk.debian.org/debian Code:
root@host# cp /etc/mtab /mnt/deboot/etc/mtab Code:
root@host# mount -o bind /dev /mnt/deboot/dev Code:
cp /etc/resolv.conf /mnt/etc/resolv.conf Code:
root@host# chroot /mnt/deboot /bin/bash Code:
root@chroot# echo "<name-your-host>" > /etc/hostname Code:
root@chroot# apt-get install xserver-xorg wdm fluxbox xterm 10.'Clean the package cache': Code:
root@chroot# apt-get clean So now I'm hoping GRUB will allow me to boot from sda2 so the new installation can begin. Can anyone please say if the above is ok for a new install? |
All times are GMT -5. The time now is 04:11 AM. |