All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hendrik Friedel <hendrik@friedels.name>
To: Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: booting from BTRFS works only with one device in the pool
Date: Mon, 1 Feb 2016 22:31:47 +0100	[thread overview]
Message-ID: <56AFCEC3.9050803@friedels.name> (raw)

Hello,

I am running CentOS from a btrfs root.
This worked fine until I added a device to that pool:
btrfs device add /dev/sda3 /
reboot

This now causes the errors:
BTRFS: failed to read chunk tree on sdb3
BTRFS: open_ctree failed

Here  I am stuck in a recovery prompt.

btrfs fi show displays the file system correctly with 2.1GiB used for 
sdb3 and 0.00GiB used on sda3

btrfs-tools version reports
btrfs-progs v4.3.1

Now, I read that in case of this issue, should add the second device of 
the pool to the commandline argument of the kernel/the boot options/grub.cfg

But I am not sure how to do this.
I can mount /boot/  and the /boot/grub2/grub.cfg contains:
insmod ext2 (but not btrfs!)
set root='hd0,msdos1'
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 
--hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 
4a470ac6-f013-4e7b-a4f3-3a58cc4debc3

after removing sda3 from the pool again, the system boots normally.

blkid gives:
/dev/sdb3: LABEL="rockstor_rockstor" 
UUID="f9de7c11-012e-4e5d-8b53-0e6d6c2916a3" 
UUID_SUB="24bdf07b-dbd3-44dc-9195-4b0bfedf974f" TYPE="btrfs" 
PARTLABEL="Linux filesystem" PARTUUID="c438bd3c-df9a-4e49-8607-47cd9b45e212"
(note /dev/sda3 is not shown here)

btrfs fi show
Label: 'rockstor_rockstor'  uuid: f9de7c11-012e-4e5d-8b53-0e6d6c2916a3
         Total devices 1 FS bytes used 1.38GiB
         devid    1 size 6.87GiB used 2.10GiB path /dev/sdb3





It's a pitty that the only NAS Distribution built around btrfs does not 
support the full feature-set of btrfs on its root partition.
Could you please help me fixing this?

Below you find the complete grub.cfg.

Regards,
Hendrik







cat /boot/grub2/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -s $prefix/grubenv ]; then
   load_env
fi
if [ "${next_entry}" ] ; then
    set default="${next_entry}"
    set next_entry=
    save_env next_entry
    set boot_once=true
else
    set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
   menuentry_id_option="--id"
else
   menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
   set saved_entry="${prev_saved_entry}"
   save_env saved_entry
   set prev_saved_entry=
   save_env prev_saved_entry
   set boot_once=true
fi

function savedefault {
   if [ -z "${boot_once}" ]; then
     saved_entry="${chosen}"
     save_env saved_entry
   fi
}

function load_video {
   if [ x$feature_all_video_module = xy ]; then
     insmod all_video
   else
     insmod efi_gop
     insmod efi_uga
     insmod ieee1275_fb
     insmod vbe
     insmod vga
     insmod video_bochs
     insmod video_cirrus
   fi
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
   set timeout_style=menu
   set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
   set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
   source ${prefix}/user.cfg
   if [ -n "${GRUB2_PASSWORD}" ]; then
     set superusers="root"
     export superusers
     password_pbkdf2 root ${GRUB2_PASSWORD}
   fi
fi
### END /etc/grub.d/01_users ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Rockstor (4.3.3-1.el7.elrepo.x86_64) 3 (Core)' --class rhel 
fedora --class gnu-linux --class gnu --class os --unrestricted 
$menuentry_id_option 
'gnulinux-4.3.3-1.el7.elrepo.x86_64-advanced-f9de7c11-012e-4e5d-8b53-0e6d6c2916a3' 
{
         load_video
         set gfxpayload=keep
         insmod gzio
         insmod part_msdos
         insmod ext2
         set root='hd0,msdos1'
         if [ x$feature_platform_search_hint = xy ]; then
           search --no-floppy --fs-uuid --set=root 
--hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 
--hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 
4a470ac6-f013-4e7b-a4f3-3a58cc4debc3
         else
           search --no-floppy --fs-uuid --set=root 
4a470ac6-f013-4e7b-a4f3-3a58cc4debc3
         fi
         linux16 /vmlinuz-4.3.3-1.el7.elrepo.x86_64 
root=UUID=f9de7c11-012e-4e5d-8b53-0e6d6c2916a3 ro rootflags=subvol=root 
crashkernel=auto rhgb quiet LANG=en_US.UTF-8
         initrd16 /initramfs-4.3.3-1.el7.elrepo.x86_64.img
}
menuentry 'Rockstor (0-rescue-f5f625480f394bdc90d6d3c06be7fb88) 3 
(Core)' --class rhel fedora --class gnu-linux --class gnu --class os 
--unrestricted $menuentry_id_option 
'gnulinux-0-rescue-f5f625480f394bdc90d6d3c06be7fb88-advanced-f9de7c11-012e-4e5d-8b53-0e6d6c2916a3' 
{
         load_video
         insmod gzio
         insmod part_msdos
         insmod ext2
         set root='hd0,msdos1'
         if [ x$feature_platform_search_hint = xy ]; then
           search --no-floppy --fs-uuid --set=root 
--hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 
--hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 
4a470ac6-f013-4e7b-a4f3-3a58cc4debc3
         else
           search --no-floppy --fs-uuid --set=root 
4a470ac6-f013-4e7b-a4f3-3a58cc4debc3
         fi
         linux16 /vmlinuz-0-rescue-f5f625480f394bdc90d6d3c06be7fb88 
root=UUID=f9de7c11-012e-4e5d-8b53-0e6d6c2916a3 ro rootflags=subvol=root 
crashkernel=auto rhgb quiet
         initrd16 /initramfs-0-rescue-f5f625480f394bdc90d6d3c06be7fb88.img
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply 
type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
   source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
   source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###


---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus


             reply	other threads:[~2016-02-01 21:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-01 21:31 Hendrik Friedel [this message]
2016-02-01 22:11 ` booting from BTRFS works only with one device in the pool Hugo Mills
2016-02-01 23:02   ` Duncan
2016-02-01 23:15     ` Hugo Mills
2016-02-02 22:01   ` Hendrik Friedel
2016-02-02 22:06     ` Chris Murphy
2016-02-03  6:31       ` Hendrik Friedel
2016-02-02 22:09     ` Hugo Mills
2016-02-01 23:29 ` Chris Murphy
2016-02-02 21:59   ` Hendrik Friedel
2016-02-02 22:04     ` Chris Murphy
2016-02-03 18:14       ` Hendrik Friedel
2016-02-03 20:30         ` Chris Murphy
2016-02-03 22:19           ` Chris Murphy
2016-02-13 14:38             ` Hendrik Friedel
2016-02-13 18:20               ` Chris Murphy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56AFCEC3.9050803@friedels.name \
    --to=hendrik@friedels.name \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.