On Mon, Feb 01, 2016 at 10:31:47PM +0100, Hendrik Friedel wrote:
> 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

   By far the simplest and most reliable method of doing this is to
use an initramfs with the command "btrfs dev scan" in it somewhere
before mounting. Most of the major distributions already have an
initramfs set up (as does yours, I see), and will install the correct
commands in the initramfs if you install the btrfs-progs package
(btrfs-tools in Debian derivatives).

   The other approach is to add "device=/dev/sda3,device=/dev/sdb3" to
the "rootflags=" option on the grub command line, but that's going to
break if your kernel or hardware decides to reorder your devices.

   Do the sensible thing and just use the initramfs solution.

   Hugo.

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

-- 
Hugo Mills             | I must be musical: I've got *loads* of CDs
hugo@... carfax.org.uk |
http://carfax.org.uk/  |
PGP: E2AB1DE4          |                                     Fran, Black Books

Attachment: signature.asc
Description: Digital signature

Reply via email to