Clarification on Btrfs Subvolumes

Howdy-ha, folks.  So, I just got myself a new Western Digital Advance Format HDD for my laptop.  While I first considered cloning my current drive, I decided instead to just reinstall by backing up/restoring the pacman cache, first formatting the drive as Btrfs.  I've hit a snag, though, because despite reading through the Brtfs wiki FAQ, Use Cases and Getting Started entries word-for-word (twice, even), the Arch wiki entry on Btrfs and searching the forums I can't quite wrap my head around subvolumes.  I understand that the general idea is to do away with multiple, partially-full partitions, but I can't figure out how subvolumes are mounted and used as an analog to partitions.
I plan to use Archboot to install, and up to this point have had separate partitions for /root and /home.  In order to mimic this with Btrfs, would I simply create two subvolumes at installation time--one for root to allow for snapshots, and one for my Home folder?  Would these actually be mounted in theoretically the same way as separate partitions?  I like to tinker, and 'till now have just used clonezilla to back-up my /root partition if something went wrong, leaving /home untouched.  Sorry, but I can't figure out how this might be done, as the wiki simply explains how to create a new subvolume in a certain location and mount it manually (since it isn't a new filesystem, it doesn't need an fstab entry); and how to delete a subvolume.  It also seems that the examples used in the Btrfs wiki are for an external device, which just seems to obfuscate things.  I'd really appreciate the help of someone experienced in this or a point in the right direction, though I suppose I could also just create two separate Btrfs partitions if I can't figure it out.  Thanks.

So as I write this, I think I may have found a solution to the first question, and have a functional system.  I used Archboot to install this setup:
$ btrfs sub li /
ID 256 top level 5 path root
ID 257 top level 5 path home
Which, when viewed from a LiveCD, looks essentially like this:
__actual root__
|__subvbolume "root"
|__subvolume "home"
Each of these is mounted via fstab in the respective part of the file system--or at least it seems so:
#/etc/fstab: static file system information
# <file system> <dir> <type> <options> <dump> <pass>
devpts /dev/pts devpts defaults 0 0
shm /dev/shm tmpfs nodev,nosuid 0 0
# DEVICE DETAILS: /dev/sda1 UUID=28a77746-673e-482c-b037-3eea590c0b14 LABEL=Boot
# DEVICE DETAILS: /dev/sda2 UUID=7caf3bbf-0d2c-4961-8693-962ebc365f20 LABEL=Arch
# DEVICE DETAILS: /dev/sda2 UUID=7caf3bbf-0d2c-4961-8693-962ebc365f20 LABEL=Arch
# DEVICE DETAILS: /dev/sda3 UUID=f6e8ba7e-0cae-429d-9a2b-e4bdf5d8be7d LABEL=Swap
LABEL=Arch / btrfs defaults,subvol=root,compress 0 1
LABEL=Arch /home btrfs defaults,subvol=home,compress 0 1
LABEL=Boot /boot ext2 defaults 0 1
LABEL=Swap swap swap defaults 0 0
This results in a seemingly ordinary filesystem when I'm logged into my desktop:
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var
/home
└── anoknusa
├── ABS
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── pkglist
├── Stuff
├── Torrents
└── Videos
So, at this juncture I have what appear to be two separate snapshots mounted at separate points in order to create a single filesystem, just as I would had I mounted to separate partitions, and I'm left only wondering about the second question.
I'm still not entirely clear whether this will give me the desired effect.  Each subvolume rests at the same level of the fs tree; they're side-by-side, rather than having the "home" subvolume under the "root" subvolume.  Again, what I'm hoping for is the ability to take snapshots of "root" and "home" separately--as one would with separate partitions--so that taking a snapshot of "root" won't end up with my entire drive under it, and I can tinker without worrying about whether or not I'll have to spend two hours restoring a snapshot every few days.  I'm not sure if this would work while both snapshots are mounted, so I'm planning on testing this once my backups are done copying to my ~/  folder (I'm really no good when it comes to visualizing this sort of thing, and need to either see it in action or be told that it's gonna work by someone who's done this before). Hopefully, this works out as planned.  Any more advice from anyone would be greatly appreciated; thanks again.

Similar Messages

  • Change default btrfs subvolume - GRUB problem

    grub-mkconfig  creates a grub.cfg with this kernel command line:
    linux /vmlinuz-linux root=UUID=88e4e9db-0d5d-4055-bb36-6c4bc3454cb3 rw rootflags=subvol=SB0 quiet video=hyperv_fb:1920x1080
    my problem lies in rootflags=subvol=SB0 where is named a specific btrfs subvolume.
    I would like no subvolume be specified in grub.cfg so that the default one will be mounted as root filesystem.
    The reason is I have arch installed into btrfs subvols and I would like to choose which arch variant to boot simply changing default subvol.
    (I've used the installation tips found at http://www.funtoo.org/BTRFS_Fun )
    This is btrfs root :
    ~/bin > mount /dev/sda2 -o subvolid=0 /mnt
    ~/bin > btrfs filesys show /mnt
    Label: none uuid: 88e4e9db-0d5d-4055-bb36-6c4bc3454cb3
    Total devices 1 FS bytes used 3.47GiB
    devid 1 size 126.81GiB used 6.04GiB path /dev/sda2
    btrfs-progs v3.19.1
    /etc/fstab :
    ~/bin > cat /etc/fstab
    # /etc/fstab: static file system information
    # <file system> <dir> <type> <options> <dump> <pass>
    # /dev/sda2
    UUID=88e4e9db-0d5d-4055-bb36-6c4bc3454cb3 / btrfs rw,relatime,space_cache 0 0
    # /dev/sda1
    UUID=df2d9bbc-ab0a-42a5-96ae-7c90f0c15a0e /boot ext3 rw,relatime,data=ordered 0 2
    These are the subvolumes:
    ~/bin > btrfs subvol list /mnt
    ID 260 gen 5129 top level 5 path SB0
    ID 264 gen 4975 top level 260 path SB0/var/lib/machines
    ID 265 gen 5092 top level 5 path SB1
    SB1 is a snapshot of SB0 and both contain an arch installation
    SB1 is default one:
    ~/bin > btrfs subvol get-default /mnt
    ID 265 gen 5092 top level 5 path SB1
    but if I run grub-mkconfig it picks up SB0, in my opinion the wrong one.
    Please note that SB0 is currently mounted as system root:
    ~/bin > findmnt -o SOURCE,TARGET,FSTYPE,FSROOT /
    SOURCE TARGET FSTYPE FSROOT
    /dev/sda2[/SB0] / btrfs /SB0
    Is it possible to tell to grub-mkconfig to not name any specific subvol ?
    If you look into: /etc/grub.d/10_linux
    and search for "btrfs"  it may give an hint, but I don't understand it.
    many thanks in advance
    Andrea
    EDIT: of course, if I change kernel command line by hand (:s/SB0/SB1) it works as expected, but it's not I'm looking for, being grub.cfg an automatically generated file.
    Last edited by Aklo (2015-04-28 11:11:56)

    I don't use GRUB anymore, but I don't recall it requiring a specified subvolume to boot, however if you've installed to a specific subvolume (SB0 in your case), then you will need to to tell GRUB where to look more specifically than just the device and partition (/dev/sda2).
    What might accomplish what you're asking for is to set up seaparate boot entries for the respective subvolumes / installation variants.  Basically manually add another "menuentry" in /boot/grub/grub.cfg and change the subvolume specified:
    /boot/grub/grub.cfg
    menuentry "Arch Linux - SB0" {
    linux /boot/vmlinuz-linux root=/dev/sda2 rootflags=subvol=SB0
    menuentry "Arch Linux - SB1" {
    linux /boot/vmlinuz-linux root=/dev/sda2 rootflags=subvol=SB1
    You'd need to fiddle with /etc/fstab a then since I'm pretty sure something would freak out if you tried to mount two subvolumes to / at the same time (e.g., duplicate entries with different subvolumes specified).  A much simpler solution would be separate root partitions with shared /boot and /home partitions.  Like so (subvolumes would even be optional):
    /dev/sda1 ext3 /boot
    /dev/sda2 btrfs / *"menuentry" in /boot/grub/grub.cfg > title "Arch Linux - SB0"
    /dev/sda3 btrfs / *"menuentry" in /boot/grub/grub.cfg > title "Arch Linux - SB1"
    /dev/sda4 btrfs /home
    Basically you have two separate installations, which is what it sounds like you're asking for that can be selected at boot time and share a /home partition.  The fstabs in each root would only differ at the / partition entry.

  • Using BTRFS subvolumes to host multiple linux distributions

    I'm planning to use BTRFS subvolumes to have an Archlinux and an Ubuntu system booting off the same partition. The goal is to to have them both using the same disk space, mostly because I dislike having to resize partitions to make room for  one or the other. Also my system has been way too stable lately and I have to break it.
    Has anyone tried something like this before? Any gotchas I should be aware of? AFAIK what I'll need to do is use debootstrap to setup ubuntu in a subvolume, copy the ubuntu kernel/initrd over to my /boot, and setup grub2 to boot the ubuntu subvolume (line after root= would be ro,subvol=altroot I think)
    If it works I'll be sure to post the success here.

    correnos wrote:
    I'm planning to use BTRFS subvolumes to have an Archlinux and an Ubuntu system booting off the same partition. The goal is to to have them both using the same disk space, mostly because I dislike having to resize partitions to make room for  one or the other. Also my system has been way too stable lately and I have to break it.
    Has anyone tried something like this before? Any gotchas I should be aware of? AFAIK what I'll need to do is use debootstrap to setup ubuntu in a subvolume, copy the ubuntu kernel/initrd over to my /boot, and setup grub2 to boot the ubuntu subvolume (line after root= would be ro,subvol=altroot I think)
    If it works I'll be sure to post the success here.
    it should be possible, though the subvol=XXX is not correct.  in the arch initramfs scripts:
    rootflags=subvol=XXX
    is used to add mount options to the root mount; "ro" is a special case and is handled explicitly.  i'm not sure how ubuntu handles this, but the kernel itself has nothing to do with it... is all initramfs, so you will have to look into that for ubuntu.
    beyond that, just make sure the kernels and initramfs names do not conflict.
    C Anthony

  • How to setup a btrfs subvolume and boot onto it

    I have backed up my previous laptops Arch install onto an external drive and now I have a new laptop with btrfs and I would like to rsync my previous Arch into a subvolume so I can boot into it separetely from the main current OS. Being new to btrfs, and not wanting to destroy my new installation, I was hoping someone could provide some generic step by step instructions on how to create a bootable btrfs subvolme (the rsync step is easy) and how to tweak grub to boot onto it?

    Its pretty simple actually.  You create a subvolume and you can mount the filesystem from that point.  So say I were to do:
    # btrfs subvolume create /rootfs
    I could then mount it with:
    # mount -o subvol=rootfs /dev/sda1 /mnt
    Thus, to make it so that you can mount that filesystem as the rootfs, you would need pass that mount option when the machine is booting.  This is typically done in the fstab.  But there is a small problem there since the initramfs will first mount the partition looking for /sbin/init, using the kernel command line to figure out what to do.  So you will have to modify your kernel command line in order to get it to mount the proper thing.  This can be done with the rootflags= option.
    Alternatively, you can specify /rootfs as the default subvolume.  This will make it so that if you pass no mount options to it, it will mount at subvol=rootfs.
    You should do some reading about btrfs on the btrfs wiki (the actual btrfs wiki).  Some basic knowledge about how to use things and the various tools that ship with the progs would take you a long way.  It might also keep you from unnecessarily doing various recovery things that might totally wreck the filesystem.  Remember that btrfs is still in very active development.  Make sure you have tested backups.

  • BTRFS : Subvolumes, mount options

    Hello,
    I took a look at btrfs, read the wiki, some guides and I have a few questions :
    1) In every guide I read, even on the official wiki, the root and home subvolumes are created separately. I don't understand why since the two are "linked" it would make more sense to create the home subvolume inside the root subvolume. From what I understand it wouldn't make the snapshots harder because the subvolume children are ignored when snapshotting. Moreover since subvolume children are automatically mounted we can mount the all system in one command only, so only one line in fstab to mount everything. So why not create the subvolumes directly in the root subvolume ? The only drawback I can see is that you can't set different mounting options for the children.
    2) Same goes for autodefrag option, wherever I read about btrfs and SSDs the autodefrag option is always there. I understand defragmentation for a spinning device but fail to see the usefulness on SSDs. Moreover defragmentation is really bad for SSDs as it shortens their lifespan. So the way I see it defragmentation and autodefrag only has drawbacks for SSDs. What am I missing ?
    3) For the same SSD lifespan concerns I plan to not use inode_cache and space_cache by using the nospace_cache option. So my options would be :
    rw,noatime,compress=lzo,ssd,discard,nospace_cache
    Does that seem optimal ?
    Thanks in advance,
    Nolhian
    Last edited by Nolhian (2014-04-29 16:36:37)

    If /home is nested it may lead to confusion if you later want to mount home-snapshot-1 to /home. Keeping things separate, while not required, is still a good idea.
    My mount options for my ssd-based root subvolume are: "defaults,noatime,discard,ssd,subvolid=0". I don't know where you've seen autodefrag as a standard ssd option, like you say, it doesn't make much sense for ssds.
    Can't comment on the caches.  There's a few threads on the mailing list that may be of interest to you though (not read them myself).
    http://www.mail-archive.com/linux-btrfs … 24827.html
    http://www.mail-archive.com/linux-btrfs … 30739.html
    http://www.mail-archive.com/linux-btrfs … 07498.html
    There's a lot more.

  • How to mount BTRFS subvolume?

    Hi all, I created a BTRFS volume in RAID 5 mode (label is 'raid5') across 3 raw disks (hdb, hdc, hdd) and mounted it in /media/raid5. I then created a few subvolumes including a 'home' subvolume. Prior to this, I had the whole system mounted in / on an ext4 partition.
    Question: How do I mount that raid5.home subvolume into /home, and the other subvolumes elsewhere?

    If you don't know how to mount a subvolume, you probably don't follow btrfs development very closely (read: at all).  That being the case, I just want to point out that btrfs is still often considered experimental, and the btrfs raid5/6 support is brand-spanking-new and considered entirely unstable.  So you should not be using it if you care at all about your data.  (But if you are using btrfs in the first place, you should have working, tested backups anyway, right?)
    For information more directly related to your question, please see the btrfs wiki. You should really read through that if you want to use btrfs anyway.  And I'm talking about https://btrfs.wiki.kernel.org not the btrfs page in the Arch wiki.  This question is about how to use one of the more basic functionalities of btrfs, so it is well documented, and the information can be found all over the internets.

  • [SOLVED] Install to BtrFS already existing (but empty) subvolume

    I currently have a Btrfs filesystem made up of /dev/sda5 and /dev/sda6. On that filesystem, there is an Ubuntu 11.10 install in the @oneiric_main subvolume and a data subvolume (with Ubuntu /home) in the @Data subvolume. Grub2 is installed in the @oneiric_main subvolume and works fine.
    I would like to install arch to a new subvolume on the existing BtrFS filesystem. I would probably make a subvolume named @arch_2011.08 to install it on. (@arch is taken--I already tried to do this myself, installing using pacman -r <subvol_mount_point> -Sy base --ignore grub. Didn't work, has no initrd, kernel panics with VFS not syncing error) I would like to then boot Arch with Ubuntu's Grub2 since that install is working off BtrFS. How do I go about doing this?
    On the install that failed, I generally tried to follow https://wiki.archlinux.org/index.php/In … Btrfs_root, but I didn't really need/want automatic snapshots, so I didn't think I wanted to install mkinitcpio-btrfs. For it my Grub2 entry is
    menuentry "Arch (on /dev/sda6)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod btrfs
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root d551dbac-3c7f-4f8f-a0d4-2d1f242cc42f
    linux /@arch/boot/vmlinuz-linux root=/dev/disk/by-uuid/d551dbac-3c7f-4f8f-a0d4-2d1f242cc42f rootflags=subvol=@arch ro
    I've tried to chroot to the Arch install from Ubuntu and run mkinitcpio, but that gave an error that some directory was not valid. The directory it complained about had the Ubuntu kernel version in its name, so I figured I was doing something majorly wrong. Edit:I suppose it would help if I updated the /etc/fstab. I did, but I still get the same error. The first line is "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)"
    I'm not sure if I should try to fix the first install or just start again. Either way would get the goal:Arch installed on the BtrFS subvolume, booted with Ubuntu's Grub2.
    Last edited by Azendale (2011-12-17 22:34:16)

    @Teekay:I did mount /proc, /sys and /dev into the @arch subvolume before chrooting.
    Here's what happens when I try to chroot into the Arch install to make an initrd:
    [root@dynl:~]# mount -o subvol=@arch /dev/sda5 /mnt
    [root@dynl:~]# cd /mnt
    [root@dynl:/mnt]# mount -o bind /dev dev
    [root@dynl:/mnt]# mount -o bind /sys sys
    [root@dynl:/mnt]# mount -o bind /proc proc
    [root@dynl:/mnt]# chroot .
    chroot: failed to run command `/bin/zsh': No such file or directory
    [root@dynl:/mnt]# chroot . bash
    bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
    [root@dynl /]# ls
    bin dev home lib64 mnt proc run srv tmp var
    boot etc lib media opt root sbin sys usr
    [root@dynl /]# mount
    /dev/sda5 on / type btrfs (rw,relatime)
    udev on /dev type devtmpfs (rw,relatime,size=693104k,nr_inodes=173276,mode=755)
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
    proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
    [root@dynl /]# mkinitcpio
    /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
    ==> ERROR: '/lib/modules/3.1.0-030100rc10-generic' is not a valid kernel module directory
    Update: I've made progress. Instead of chrooting from Ubuntu, I chooted from the arch installation live image. I was able to run mkinitcpio -p linux. I added an initrd line to grub2:
    menuentry "Arch (on /dev/sda6)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod btrfs
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root d551dbac-3c7f-4f8f-a0d4-2d1f242cc42f
    linux /@arch/boot/vmlinuz-linux root=/dev/disk/by-uuid/d551dbac-3c7f-4f8f-a0d4-2d1f242cc42f rootflags=subvol=@arch ro
    initrd /@arch/boot/initramfs-linux.img
    The new error is :
    Decompressing Linux... Parsing ELF... done.
    Booting the kernel.
    :: Starting udevd...
    done.
    :: Running Hook [udev]
    :: Triggering uevents...done.
    Waiting 10 seconds for device /dev/sda6 ...
    mount: mounting dev/sda6 on /new_root failed: Invalid argument
    ERROR: Failed to mount the real root device.
    bailing out, you are on your own. Good luck.
    sh: can't access tty; job control turned off
    [ramfs /]#
    Also, the Arch /etc/fstab is:
    # /etc/fstab: static file system information
    # <file system> <dir> <type> <options> <dump> <pass>
    tmpfs /tmp tmpfs nodev,nosuid 0 0
    UUID=d551dbac-3c7f-4f8f-a0d4-2d1f242cc42f / btrfs defaults,subvol=@arch 0 0
    Last edited by Azendale (2011-11-05 06:43:49)

  • Btrfs and subvolumes

    Hey!
    I recently starting playing with btrfs and subvolume, but it has left me puzzled:
    root@horus /mnt # mkfs.btrfs -L test /dev/sdb1
    WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
    WARNING! - see http://btrfs.wiki.kernel.org before using
    fs created label test on /dev/sdb1
            nodesize 4096 leafsize 4096 sectorsize 4096 size 2.73TB
    Btrfs Btrfs v0.19
    root@horus /mnt # mount /dev/sdb1 test
    root@horus /mnt # cd test
    root@horus /mnt/test # btrfs subvolume create sv1
    Create subvolume './sv1'
    root@horus /mnt/test # btrfs subvolume create sv2
    Create subvolume './sv2'
    root@horus /mnt/test # touch sv1/sv1.file
    root@horus /mnt/test # touch sv2/sv2.file
    root@horus /mnt/test # btrfs subvolume get-default .
    ID 256 top level 5 path sv1
    ID 259 top level 5 path sv2
    What is the default subvolume now? How can I tell?
    root@horus /mnt/test # btrfs subvolume set-default 259 .
    root@horus /mnt/test # btrfs subvolume get-default .
    ID 256 top level 5 path sv1
    ID 259 top level 5 path sv2
    Seem to have changed nothing....?
    root@horus /mnt/test # cd ..
    root@horus /mnt # umount test && mount /dev/sdb1 test
    root@horus /mnt # ls test
    sv2.file
    Ah, sv2 seems to be default, like I had set...
    root@horus /mnt # btrfs subvolume set-default 5 test
    root@horus /mnt # umount test
    root@horus /mnt # mount /dev/sdb1 test
    root@horus /mnt # ls test
    sv1/  sv2/
    Ok, 5 seems to be the root subvolume id. Is it always like that? I remembered to have read it was 0 somewhere? (which makes a kind of more sense for me)
    root@horus /mnt # btrfs subvolume set-default 256 test
    root@horus /mnt # umount test && mount /dev/sdb1 test
    root@horus /mnt # ls test
    sv1.file
    Fine! But:
    root@horus /mnt # btrfs subvolume set-default 0 test
    root@horus /mnt # umount test && mount /dev/sdb1 test
    root@horus /mnt # ls test
    sv1.file
    set-default 0 seems to do nothing but does not produce an error either. What about subvolume 0? Still I can do:
    root@horus /mnt # umount test
    root@horus /mnt # mount -o subvolid=0 /dev/sdb1 test
    root@horus /mnt # ls test
    sv1/  sv2/
    Ok, here 0 as subvolid works. What about subvolid=5?
    root@horus /mnt # umount test
    root@horus /mnt # mount -o subvolid=5 /dev/sdb1 test
    root@horus /mnt # ls test
    sv1/  sv2/
    Works too.
    Sorry for the lengthy posting, but writing this posting has puzzled me even more I was yesterday. I hope someone could shed some light on it.
    Thanks!
    Last edited by Osiris (2012-07-29 09:40:49)

    mamr wrote:AFAIK it is not possible to 'securely' and completely erase a SSD drive.
    If your SSD is 120G large and you write 120G of random data to it and you are able to read the same random data back; unlike zeros, random data can not be compressed/ignored, so 120G worth of data on that medium have been overwritten and therefore deleted. What's left (sector reserve or what ever), will be random fragments in random order, probably about as useful as a raid0 with some missing disks. And if that is not good enough for you, there is still the blackbox secure erase which may or may not delete the reserve as well. The issue is a lot more interesting if the drive is so broken that it refuses to write data. That's when you can't erase it anymore. There's not really that much difference compared to HDD.
    In general, encryption works fine on SSD - if you have a fast CPU that supports AES-NI, you'll even still get SSD speeds out of it. TRIM works fine as well, if your kernel isn't old, and you open the LUKS container with the allow-discards option.
    AFAIK I have to leave /boot unencrypted. Is there any possibility that private data will be written to this partition?
    It depends. Is your kernel config private?
    In my case, /boot is a USB stick and it has LUKS encrypted keyfiles on it which open LUKS containers on the internal SSD/HDD.
    Last edited by frostschutz (2014-04-05 15:06:49)

  • Btrfs default subvolume

    Hi,
    I'm using the OL 6.3 UEK2 boot CD and experience the following:
    Although setting the default subvolume works, querying seems not, unless I'm doing it wrong. Please see below:
    # mkfs.btrfs -L root /dev/sda3
    # mount /dev/sda3 /mnt/root
    # btrfs subvol create /mnt/root/root-subvol1
    # btrfs subvol create /mnt/root/root-subvol2
    # btrfs subvol create /mnt/root/root-subvol3
    # btrfs subvol list /mnt/root
    ID 256 top level 5 path root-subvol1
    ID 258 top level 5 path root-subvol2
    ID 259 top level 5 path root-subvol3
    # btrfs subvol set-default 258 /mnt/root
    # btrfs subvol get-default /mnt/root
    ID 256 top level 5 path root-subvol1
    ID 258 top level 5 path root-subvol2
    ID 259 top level 5 path root-subvol3
    # umount /mnt/root
    # mount /dev/sda3 /mnt/root
    # touch /mnt/root/testfile
    # umount /mnt/root
    # mount -o subvolid=0 /dev/sda3 /mnt/root
    # ls -R /mnt/root
    /mnt/root:
    root-subvol1 root-subvol2 root-subvol3
    /mnt/root/root-subvol1:
    /mnt/root/root-subvol2:
    testfile
    /mnt/root/root-subvol3:
    Thanks!

    Ok, I see. Too bad. Thanks for the info!
    Well, I thought it might be easier to simply change the default subvolume rather than modifying the kernel startup parameters to mount the btrfs root volume by subvolid. But even if the bug gets fixed, how can I tell what is currently mounted? It seems to me there is no option in btrfs to show the current name or ID of a mounted subvolume or snapshot. Using the example above, for instance:
    # mkdir /mnt/258 /mnt/0
    # mount -o subvolid=258 /dev/sda3 /mnt/258
    # mount -o subvolid=0 /dev/sda3 /mnt/0
    If I don't know the mount command, how can I tell what btrfs subvolume or snapshot is currently mounted. /etc/mtab does not keep track of the subvolid. The btrfs subvol list command gives me the same output on /mnt/258 as it does on /mnt/0. I could create a certain file in /mnt/258 and then search for it in /mnt/0 to find the parent directory, but is there a more elegant way to determine what is actually mounted?

  • [SOLVED]Arch Linux / UEFI / BTRFS using Grub2 & Windows 8 in a 2nd HDD

    PROBLEM:
    ====================================================================================
    Dear fellas
    I just purchased an new HP TouchSmart 17.3" laptop that comes with Windows 8.1 pro (1 tb HDD + small SSD for cache only ) and still have space for one more HDD or SSD.
    I Google a lot and read a lot but many questions emerged since seems that no one has the same scenario (maybe I pick the wrong choices) like me.
    The problem is.. I didn't wish to re-install Windows 8.1 since it came with from factory.. so I purchased a 750 gb hdd and put it into the free slot to install Arch Linux in a different HDD.
    As I am not familiar with UEFI what I did was to reorder the hdds. I just put the Windows HDD as second disk and the new disk (For Arch Linux) as primary and changed into Bios from UEFI to compatibility mode and installed Arch Linux into the primary one.
    I reaaaally need help to add to grub the correct "path" to Windows 8.1 disk that came with UEFI..
    Anyone could please help me?
    Thanks in advance!
    ====================================================================================
    SOLUTION:
    A huge thanks to @TheSaint and other users for their help and assistance!
    More sources:
    http://www.kossboss.com/linux---arch-in … -grub-boot
    https://www.youtube.com/watch?v=METZCp_JCec#t=146
    https://bbs.archlinux.org/viewtopic.php … 1#p1390741
    Step by Step Summary:
    Use gdisk to create partitions on /dev/sda:
        - 512MB - EF02 type partition (for EFI boot)
        - 690GB - Linux partition for the BTRFS.
    - Create an EF00 (ESP) with 512mb
    - Create a Linux System partition with the rest of space
    Make the FAT 32 system for EFI boot:
    # mkfs.vfat -F32 /dev/sda1
    Make the BTRFS partition. If it complains about existing filesystems just add a "-f":
    # mkfs.btrfs -L arch -f /dev/sda2
    We will make out a root subvolume for sda1, this will be a folder called root located at the root of sda2. The way we will design this is that When the system boots we will not see /root, we will be inside root. Inside root you will have all of your etc,sys,proc,whatever folders etc.
    # mount /dev/sda2 /mnt
    # cd /mnt
    # btrfs subvolume create /mnt/root
    This should show you your root
    # btrfs subvolume list -a /mnt
    Something like this: ID 256 gen 5 top level 5 path root
    # cd /
    # umount /dev/sda2
    Now we will mount sda2 root subvolume as /mnt and we will dump the arch system into there with pacman. We will also enable compress to utilize btrfs compress feature.
    # mount -o defaults,compress=lzo,subvol=root /dev/sda2 /mnt
    NOTE: the command "mount" will not show which subvolume is mounted, to see how subvolumes are mounted you need to look inside proc (cat /proc/self/mountinfo):
    # cat /proc/self/mountinfo | egrep sda2
    The line for the mount of sda2 looks like this:
    43 21 0:34 /root /mnt rw,relatime shared:30 - btrfs /dev/sda2 rw,compress=zlib,ssd,space_cache
    We can see that the subvolume /root is mounted to /mnt from the device /dev/sda3
    Notice how with regular mount command its missing:
    # mount | egrep sda2
    /dev/sda3 on /mnt type btrfs (rw,relatime,compress=zlib,ssd,space_cache)
    Pacman will dump stuff into a boot folder, so we better mount our sda1 EFI boot partition to it. Or else all of the boot stuff will go to sda3 instead of sda1:
    # cd /
    # pacstrap -i /mnt base base-devel
    Let us create the directory and mount the EFI partition
    # cd /mnt
    # mkdir -p /mnt/boot/efi
    # mount /dev/sda1 /mnt/boot/efi
    Let us generate the FSTAB:
    # genfstab -p /mnt >> /mnt/etc/fstab
    Let us chroot into the arch installation:
    # arch-chroot /mnt /bin/bash
    Change password:
    # passwd
    Then pick the right one like this and associate it with a link to /etc/localtime
    # ln -s /usr/share/zoneinfo/US/Pacific /etc/localtime
    Let us generate the initial RAM disk
    # mkinitcpio -p linux
    Let us setup the bootloader (GRUB)
    # pacman -Syu grub efibootmgr
    Let us generate the grub configuration
    # grub-mkconfig -o /boot/grub/grub.cfg
    Let us install grub into the HDD
    # grub-install /dev/sda
    # umount -R /mnt
    # umount /mnt
    # reboot
    From this step you can go straight and forward with the https://wiki.archlinux.org/index.php/Beginners%27_guide
    Last edited by erickwill (2014-11-21 20:41:06)

    TheSaint wrote:As UEFI BIOS is a boot loader itself. You should make on each HDD an ESP.
    When you want to start win8 you go to BIOS and chose its entry, so will do for Arch the same.
    For this way I suggest you write to boot the kernel directly from the BIOS. It just take some reading on this topic
    Other option you set on you second ESP the boot loader of your liking and it will try to find win8 partition.
    Thanks for your reply.
    For the second option, may I use the compatibility mode and install the booloader into the first partition along with Arch?
    Or in case the first option is still the better option, could you pleaaaase give me some directions from the scratch? Do you have Google Hangout?
    Thanks in advance.
    Last edited by erickwill (2014-11-18 19:54:26)

  • [Solved]please help with btrfs read only filesystem

    Yesterday I deleted a snapshot using the command
    sudo btrfs subvolume delete /snapshot-2014-**-**
    in which the snapshot-... is a snapshot I created eariler. But a few hours later I suddenly found that the file system became read-only. I reboot and the message stuck at mounting /dev/sda1 and failed, into an emergency shell, saying something like "no subvolume is find". I tried to mount /dev/sda1 using a rescue usb stick but still failed...
    I have been using the same command to create and delete snapshots for several months without problem, but this time... I don't know what was I doing wrong, maybe I mistyped something this time?
    So... How could I recovery the filesystem? I've searched for a bit but cannot find any satisfied result.
    EDIT: I re-installed the system.
    Last edited by Frefreak (2014-09-27 10:39:45)

    LoBo3268715 wrote:Just gonna take a stab at what you want to do here but I assume you want to switch to the ATI card correct? using open source drivers? Google around for vgaswitcharoo. It can be a royal PITA but I got it working with my intel integrated card and ATI mobility 5650. Also there is a package in the AUR for this. https://aur.archlinux.org/packages.php?ID=51704
    Yes, that's exactly what I'm trying to achieve. Thanks for the advice, I will explore all the possibilities with vga_switcheroo

  • Trying to understand and learn how to use btrfs

    I have been the past days trying to get my head around how btrfs works
    I have been trying tools like mkinitcpio-btrfs (very poorly documented) and now, if i list the subvolumes i have in certain volume (/) i see i have 4 subvolumes that have been created while playing around.
    If i try to delete them with "sudo btrfs subvolume delete __active", for example, I get a "ERROR: Error accessing '__active'
    What am I doing wrong?
    Also, I cannot get the whole idea about the difference between snapshots and subvolumes, i mean, a snapshot should be a directory that saves the changes made on the fs, s, if you want to roll back those changes, you just have to make btrfs "forget" the changes stored in that directory and move along, but I cannot take the idea of the subvolume thing.....
    As btrfs is quite experimental and the wikis are not noob-proof still, I'd appreciate if someone gave me a hand trying to understand these concept...
    For the moment, I'm just using it on a test computer and on a personal laptop with no fear of data loss,.
    Any help is welcome
    Thanks!
    Last edited by jasonwryan (2013-07-19 23:13:27)

    I honestly think it is probably a better idea to not use mkinitpcio-btrfs.  As mentioned above, it is poorly documented, and for me it has never worked right (if at all).  It is an unofficial AUR package, and unfortunately our wiki still seems to give the false impression that using this package is the way to user btrfs with Arch.
    The way I have my system set up is that in subvolid=0 (the root of the btrfs filesystem) I have a rootfs subvolume and a home subvolume (there are others, but these are what primarily make up my system).  So in my fstab, I basically have two nearly identical lines, but one has no subvol specified and is mounted at /, and the other has 'subvol=home' mounted at /home. 
    So in order to make it so that I can change the root filesystem as I please, instead of having the / fstab entry specify the subvolume, I put it in the kernel command line.  That is, I have 'rootflags=subvol=rootfs' in the kernel command line.  So if I want to change it, I simply change the path to one of the snapshots. 
    Just remember that if you are one who likes a custom kernel, it is likely that you will have to have an initamfs no matter what you compile into your kernel.  For one thing, the kernel has no mechanism for scanning for multiple device btrfs filesystems.  But also, I have read that the kernel itself cannot handle the rootflags kernel command line argument.
    Oracle Linux does something interesting with their default setup.  They are not a rolling release, so this probably wouldn't work so well in Arch Linux, but they actually install the root filesystem (I think it is actually done to subvolid=0) and then after installation of the packages, a snapshot of the root filesystem is made, and the system is setup to boot off of that snapshot.  So it is almost like having an overlayfs on openwrt.  There is always a copy of the original system, and and changes that are being made are being done "on top" of the original.  So in the event of an emergency, yo can always get back to the original working state.
    If you put your root filesystem on something other than the root of the btrfs filesystem (which you should, as it makes the whole setup much more flexible), then you should also set up a mountpoint somewhere to give administrator access to the filesystem from subvolid=0.  For example, I have an autofs mountpoint at /var/lib/btrfs-root.   chose that spot because /var/lib is where devtools puts the clean chroot.  So it seemed as reasonable a place as any.
    You should go to the btrfs wiki, and peruse through the stuff there... not our wiki, but the actual btrfs one, as our wiki is pretty sparse.  There is not all that much content there (not like the Arch wiki), but it does cover the features pretty well.  I mean, there is certainly quite a lot for being information on only a single filesystem, but it shouldn't take you too long to get through it.  There are a few links to articles about midway down the front page.  What really gave me a better grasp of getting started with btrfs were the ones titled "How I Got Started with the Btrfs Filesystem for Oracle Linux" and "How I Use the Advanced Capabilities of Btrfs".

  • Trying to understand BtrFS snapshot feature

    I'm trying to understand how the copy-on-write and Btrfs snapshot works.
    Following simple test:
    <pre>
    # cd /
    # touch testfile
    # ls --full-time testfile
    -rw-r--r-- 1 root root 0 2012-10-15 12:04:43.629620401 +0200 testfile
    Test 1:
    # btrfs subvol snapshot / /snap1
    # touch testfile
    # ls --full-time testfile /snap1/testfile
    -rw-r--r-- 1 root root 0 2012-10-15 12:04:43.629620401 +0200 /snap1/testfile
    -rw-r--r-- 1 root root 0 2012-10-15 12:07:38.348932127 +0200 testfile
    Test 2::
    # btrfs subvol snapshot / /snap2
    # touch testfile
    # ls --full-time testfile /snap1/testfile /snap2/testfile
    -rw-r--r-- 1 root root 0 2012-10-15 12:04:43.629620401 +0200 /snap1/testfile
    -rw-r--r-- 1 root root 0 2012-10-15 12:07:38.348932127 +0200 /snap2/testfile
    -rw-r--r-- 1 root root 0 2012-10-15 12:09:21.769606369 +0200 testfile
    </pre>
    According to the above tests I'm concluding/questioning the following:
    1) Btrfs determines which snapshot maintains a logical copy and physically copies the file to the appropriate snapshot before it is modified.
    a) Does it copy the complete file or work on the block level?
    b) What happens if the file is very large, e.g. 100 GB and there is not enough space on disk to copy the file to the snapshot directory?
    c) Doesn't it have a huge negative impact on performance when a file needs to be copied before it can be altered?

    Hi, thanks for the answers!
    I guess calling it "logical copy" was a bad choice. Would calling the initial snapshot a "hard link of a file system" be more appropriate?
    Ok, so BTRFS works on the block level. I've done some tests and can confirm what you said (see below)
    I find it interesting that although the snapshot maintains the "hard link" to the original copy - I guess "before block image" (?) - there really is no negative performance impact.
    How does this work? Perhaps it is not overwriting the existing file, but rather creating a new file? So the snapshot still has the "hard link" to the original file, hence nothing changed for the snapshot? Simply a new file was created, and that's showing in the current file system?
    It actually reminds me of the old VMS ODS filesystem, which used file versioning by adding a simicolon, e.g. text.txt;1. When modifying the file the result would be text.txt;2 and so on. When listing or using the file without versions, it would simply show and use the last version. You could purge old version if necessary. The file system was actually structured by records (RMS), similar like a database.
    <pre>
    [root@vm004 /]# # df -h /
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 16G 2.3G 12G 17% /
    # time dd if=/dev/zero of=/testfile bs=8k count=1M
    1048576+0 records in
    1048576+0 records out
    8589934592 bytes (8.6 GB) copied, 45.3253 s, 190 MB/s
    Let's create a snapshot and overwrite the testfile
    # btrfs subvolume snapshot / /snap1
    # time dd if=/dev/zero of=/testfile bs=8k count=1M
    dd: writing `/testfile': No space left on device
    491105+0 records in
    491104+0 records out
    4023123968 bytes (4.0 GB) copied, 21.2399 s, 189 MB/s
    real     0m21.613s
    user     0m0.021s
    sys     0m3.325s
    <pre>
    So obviously the there is not enough space to maintain the original file and the snapshot file.
    Since I'm creating a complete new file, I guess that's to be expected.
    Let's try with a smaller file, and also check performance:
    <pre>
    # btrfs subvol delete /snap1
    Delete subvolume '//snap1'
    # time dd if=/dev/zero of=/testfile bs=8k count=500k
    512000+0 records in
    512000+0 records out
    4194304000 bytes (4.2 GB) copied, 21.7176 s, 193 MB/s
    real     0m21.726s
    user     0m0.024s
    sys     0m2.977s
    # time echo "This is a test to test the test" >> /testfile
    real     0m0.000s
    user     0m0.000s
    sys     0m0.000s
    # btrfs subvol snapshot / /snap1
    Create a snapshot of '/' in '//snap1'
    # df -k /
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda3 16611328 6505736 8221432 45% /
    # time echo "This is a test to test the test" >> /testfile
    real     0m0.000s
    user     0m0.000s
    sys     0m0.000s
    # df -k /
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda3 16611328 6505780 8221428 45% /
    # btrfs subvol delete /snap1
    Delete subvolume '//snap1'
    # df -k /
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda3 16611328 6505740 8221428 45% /
    The snapshot occupied 40k
    # btrfs subvol snapshot / /snap1
    Create a snapshot of '/' in '//snap1'
    # time dd if=/dev/zero of=/testfile bs=8k count=500k
    512000+0 records in
    512000+0 records out
    4194304000 bytes (4.2 GB) copied, 21.3818 s, 196 MB/s
    real     0m21.754s
    user     0m0.019s
    sys     0m3.322s
    # df -k /
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/sda3 16611328 10612756 4125428 73% /
    There was no performance impact, although the space occupied doubled.
    </pre>

  • Manage btrfs snapshots

    One of the feature that i much like about btrfs is Snapshot.
    What i want to do is to create snapshots of /home every 5/15 minutes (i have to test better the impact on performance) and retain:
    02 - Yearly snapshots
    12 - Monthly snapshots
    16 - Weekly snapshots
    28 - Daily snapshots
    48 - Hourly snapshots
    60 - Minutely snapshots
    The above scheme is indicative and i'm looking for suggestion in order to improve  it.
    After long google searching finally i've found a very simple but powerful bash script to manage btrfs snapshots: https://github.com/mmehnert/btrfs-snapshot-rotation
    I've changed a bit the script in order to use my naming scheme
    #!/bin/bash
    # Parse arguments:
    SOURCE=$1
    TARGET=$2
    SNAP=$3
    COUNT=$4
    QUIET=$5
    # Function to display usage:
    usage() {
    scriptname=`/usr/bin/basename $0`
    cat <<EOF
    $scriptname: Take and rotate snapshots on a btrfs file system
    Usage:
    $scriptname source target snap_name count [-q]
    source: path to make snaphost of
    target: snapshot directory
    snap_name: Base name for snapshots, to be appended to
    date "+%F--%H-%M-%S"
    count: Number of snapshots in the timestamp-@snap_name format to
    keep at one time for a given snap_name.
    [-q]: Be quiet.
    Example for crontab:
    15,30,45 * * * * root /usr/local/bin/btrfs-snapshot /home /home/__snapshots quarterly 4 -q
    0 * * * * root /usr/local/bin/btrfs-snapshot /home /home/__snapshots hourly 8 -q
    Example for anacrontab:
    1 10 daily_snap /usr/local/bin/btrfs-snapshot /home /home/__snapshots daily 8
    7 30 weekly_snap /usr/local/bin/btrfs-snapshot /home /home/__snapsnots weekly 5
    @monthly 90 monthly_snap /usr/local/bin/btrfs-snapshot /home /home/__snapshots monthly 3
    EOF
    exit
    # Basic argument checks:
    if [ -z $COUNT ] ; then
    echo "COUNT is not provided."
    usage
    fi
    if [ ! -z $6 ] ; then
    echo "Too many options."
    usage
    fi
    if [ -n "$QUIET" ] && [ "x$QUIET" != "x-q" ] ; then
    echo "Option 4 is either -q or empty. Given: \"$QUIET\""
    usage
    fi
    # $max_snap is the highest number of snapshots that will be kept for $SNAP.
    max_snap=$(($COUNT -1))
    # $time_stamp is the date of snapshots
    time_stamp=`date "+%F_%H-%M"`
    # Clean up older snapshots:
    for i in `ls $TARGET|sort |grep ${SNAP}|head -n -${max_snap}`; do
    cmd="btrfs subvolume delete $TARGET/$i"
    if [ -z $QUIET ]; then
    echo $cmd
    fi
    $cmd >/dev/null
    done
    # Create new snapshot:
    cmd="btrfs subvolume snapshot $SOURCE $TARGET/"${SNAP}-$time_stamp""
    if [ -z $QUIET ]; then
    echo $cmd
    fi
    $cmd >/dev/null
    I use fcontab
    [root@kabuky ~]# fcrontab -l
    17:32:58 listing root's fcrontab
    @ 5 /usr/local/bin/btrfs-snapshot /home /home/__snapshots minutely 60 -q
    @ 1h /usr/local/bin/btrfs-snapshot /home /home/__snapshots hourly 48 -q
    @ 1d /usr/local/bin/btrfs-snapshot /home /home/__snapshots daily 28 -q
    @ 1w /usr/local/bin/btrfs-snapshot /home /home/__snapshots weekly 16 -q
    @ 1m /usr/local/bin/btrfs-snapshot /home /home/__snapshots monthly 12 -q
    And this is what i get
    [root@kabuky ~]# ls /home/__snapshots
    [root@kabuky ~]# ls -l /home/__snapshots
    total 0
    drwxr-xr-x 1 root root 30 Jul 15 19:00 hourly-2011-10-31_17-00
    drwxr-xr-x 1 root root 30 Jul 15 19:00 hourly-2011-10-31_17-44
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-18
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-20
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-22
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-24
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-26
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-32
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-37
    drwxr-xr-x 1 root root 30 Jul 15 19:00 minutely-2011-10-31_17-42

    tavianator wrote:
    Cool, I just wasn't sure if the "And this is what i get" was what you were expecting.
    Looks good, I may take a look since I'm using btrfs.  Don't confuse this for a backup though .
    Sorry for confusion, my english is not very good
    Yes this is not a backup.
    It's a sort of parachute if you do something stupid with your files you can at any time come back

  • Installing Arch on BTRFS: my setup

    Hi everybody,
    recently i've reinstalled my Arch and i've chosen the btrfs filesystem because i like, and would use, the snapshot features.
    After long reading about btrfs on various forums and blogs, i've chosen the following layout for my filesystem.
    In the root of the filesystem i've created 2 subvolumes:
    arch__root mounted under /
    arch__home mounted under /home
    This is the mount point in fstab
    # ArchDSK01 on Seagate 500Gb
    UUID=bfd6a8b7-4ad0-45d8-8bf1-50df62a40705 / btrfs defaults,autodefrag,compress=lzo,noatime,subvol=arch__root 0 0
    UUID=bfd6a8b7-4ad0-45d8-8bf1-50df62a40705 /home btrfs defaults,autodefrag,compress=lzo,noatime,subvol=arch__home 0 0
    UUID=bfd6a8b7-4ad0-45d8-8bf1-50df62a40705 /var/lib/ArchDSK01 btrfs defaults,autodefrag,compress=lzo,noatime,subvolid=0 0 0
    This naming was inspirited by meego naming. I think that is a good thing call the subvolume where the os is installed with the name of the distribution.
    Under arch__home subvolume i've created __snapshots subvolume and i store the /home snapshots in this subvolume. This because if you mount a subvolume mount automatically mount all child subvolumes. In this way the users can easily access to all /home snapshots.
    [root@kabuky home]# fcrontab -l
    20:08:55 listing root's fcrontab
    */15 * * * * btrfs s snapshot /home /home/__snapshots/hourly-`date +%Y-%m-%d_%H:%M`
    [root@kabuky home]# btrfs subvolume list /
    ID 256 top level 5 path arch__root
    ID 257 top level 5 path arch__home
    ID 258 top level 5 path arch__home/__snapshots
    ID 271 top level 5 path arch__home/__snapshots/hourly-2011-10-14_08:40
    ID 272 top level 5 path arch__home/__snapshots/hourly-2011-10-14_08:45
    ID 273 top level 5 path arch__home/__snapshots/hourly-2011-10-14_08:50
    ID 274 top level 5 path arch__home/__snapshots/hourly-2011-10-14_08:55
    Regarding the arch__root snapshots, since the actual version of btrfs can't mount a child subvolume by name but only by id i thik that it's better if we create the snapshot at filesystem root level, something like
    arch__root__snap-2011-10-14
    In this way will be easy to pass the rootflags argument to grub
    rootflags=subvol=arch__root
    become
    rootflags=subvol=arch__root__snap-2011-10-14
    that it's easier to remember.
    I'm curious to know what do you think guys.
    gspe

    It might have to do with grub not being able to find a stage 2, you do have a /boot partition added to the laptop's hdd, which is how it is done normally.
    I'm not sure if grub can access usb drives that it hasn't booted from (to get /boot), then you gotta specify it when you install grub to the mbr with the boot partition mounted:
    grub-install --root-directory=/boot sda
    Now, if that doesn't work, you'd probably have to go with using / making a tiny (20MiB) boot partition (for a single kernel + initrd) somewhere on the laptop's disk (which will work for sure)
    Last edited by vogt (2007-12-02 04:46:18)

Maybe you are looking for