diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e4e18d..e0a9874 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ Record of the modification in project development. ### Deprecated ### Removed ### Fixed +- [Issue 24 : Fail to install the ubuntu when the / volume is btrfs](https://github.com/suikan4github/kaiten-yaki/issues/24) + ### Known Issue ## [1.1.0] - 2021-07-11 diff --git a/script/lib/common.sh b/script/lib/common.sh index 8fcb0ea..ed5be7d 100644 --- a/script/lib/common.sh +++ b/script/lib/common.sh @@ -291,8 +291,11 @@ function para_install_msg() { function post_install() { ## Mount the target file system # ${TARGETMOUNTPOINT} is created by the GUI/TUI installer + # ${BTRFSOPTION} is defined by the caller of this function for BTRFS formated volume. + # ${BTRFSOPTION} have to be NOT quoted. Otherwise, mount will receive an empty + # string as first option, when the veraible is empty. echo "...Mounting /dev/mapper/${VGNAME}-${LVROOTNAME} on ${TARGETMOUNTPOINT}." - mount /dev/mapper/"${VGNAME}"-"${LVROOTNAME}" "${TARGETMOUNTPOINT}" + mount ${BTRFSOPTION} /dev/mapper/"${VGNAME}"-"${LVROOTNAME}" "${TARGETMOUNTPOINT}" # And mount other directories echo "...Mounting all other dirs." diff --git a/script/ubuntu-kaiten-yaki.sh b/script/ubuntu-kaiten-yaki.sh index 96ace9b..adfbbdd 100644 --- a/script/ubuntu-kaiten-yaki.sh +++ b/script/ubuntu-kaiten-yaki.sh @@ -53,6 +53,15 @@ function main() { # Post-install stage # ******************************************************************************* + # If the target volume is formated by btrfs, Ubiquity install the root into the + # @ sub-volume. Thus, mount command inside post_install have to use special option + # to specify @ as mount target. + if lsblk -o NAME,FSTYPE | grep -i "${VGNAME}-${LVROOTNAME}" | grep -i "btrfs" > /dev/null ; then + export BTRFSOPTION="-o subvol=@" + else + export BTRFSOPTION="" + fi + # Distribution dependent finalizing. Embedd encryption key into the ramfs image. # The script is parameterized by env-variable to fit to the distribution post_install diff --git a/script/void-kaiten-yaki.sh b/script/void-kaiten-yaki.sh index 5838747..c63f906 100644 --- a/script/void-kaiten-yaki.sh +++ b/script/void-kaiten-yaki.sh @@ -74,6 +74,9 @@ function main() { # Post-install stage # ******************************************************************************* + # We don't need special option for BTRFSOPTION. + export BTRFSOPTION="" + # Distribution dependent finalizing. Embedd encryption key into the ramfs image. # The script is parameterized by env-variable to fit to the distribution post_install