diff --git a/mkmanjaroroot.in b/mkmanjaroroot.in
index d6fe2b192e35544bdf2ce4ab390da46e7f068f0a..f3db46a6bdcde01e1c01d7ca0340e4616f4cb960 100644
--- a/mkmanjaroroot.in
+++ b/mkmanjaroroot.in
@@ -97,7 +97,7 @@ build_mount_args() {
 	if [[ -n $host_mirror_path ]]; then
 		printf -v p '%q' "$host_mirror_path"
 		if (( $IS_OPENRC ));then
-			mount_args+=("$p") #-o --bind ro
+			mount_args+=("$p;--bind -r")
 		else
 			mount_args+=(--bind-ro="$p")
 		fi
@@ -105,7 +105,7 @@ build_mount_args() {
 
 	printf -v p '%q' "${cache_dirs[0]}"
 	if (( $IS_OPENRC ));then
-		mount_args+=("$p") #--bind
+		mount_args+=("$p;--bind")
 	else
 		mount_args+=(--bind="$p")
 	fi
@@ -114,7 +114,7 @@ build_mount_args() {
 	for cache_dir in ${cache_dirs[@]:1}; do
 		printf -v p '%q' "$cache_dir"
 		if (( $IS_OPENRC ));then
-			mount_args+=("$p") #-o --bind ro
+			mount_args+=("$p;--bind -r")
 		else
 			mount_args+=(--bind-ro="$p")
 		fi
@@ -160,9 +160,8 @@ chroot_run() {
 	local dir=$1
 	shift
 	if (( $IS_OPENRC ));then
-		# the mounting doesn't work properly here for all cases --> readonly
 		for m_arg in ${mount_args[@]};do
-			mount --bind -o  ro "${m_arg}" "${dir}${m_arg}"
+			mount "${m_arg#*;}" "${m_arg%;*}" "${dir}${m_arg%;*}"
 		done
 		arch-chroot ${dir} ${@} 2>/dev/null