From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtprelay05.ispgateway.de ([80.67.18.28]:49974 "EHLO smtprelay05.ispgateway.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753380AbcBAVoG convert rfc822-to-8bit (ORCPT ); Mon, 1 Feb 2016 16:44:06 -0500 Received: from dslb-092-077-104-052.092.077.pools.vodafone-ip.de ([92.77.104.52] helo=[127.0.0.1]) by smtprelay05.ispgateway.de with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.84) (envelope-from ) id 1aQM4c-0002DV-Qs for linux-btrfs@vger.kernel.org; Mon, 01 Feb 2016 22:31:51 +0100 To: Btrfs BTRFS From: Hendrik Friedel Subject: booting from BTRFS works only with one device in the pool Message-ID: <56AFCEC3.9050803@friedels.name> Date: Mon, 1 Feb 2016 22:31:47 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Sender: linux-btrfs-owner@vger.kernel.org List-ID: 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