diff --git a/setup.sh b/setup.sh
index 4acd9d7..193882c 100644
--- a/setup.sh
+++ b/setup.sh
@@ -46,7 +46,7 @@ function install_zfs () {
 
 function get_partitions () {
     declare partitions_json
-    partitions_json="$(lsblk --output PATH,PARTTYPE --json)" || return 1
+    partitions_json="$(lsblk --output PATH,PARTTYPE --json --tree)" || return 1
     printf -- '%s' "${partitions_json}"
     return 0
 }
@@ -58,13 +58,13 @@ function get_parts () {
     zfs_install_drive="${2:-}"
     case "${parttype}" in
         zfs)
-            parts="$(get_partitions | jq --raw-output '.[][] | select(.parttype=="6a85cf4d-1dd2-11b2-99a6-080020736631") | .path')" || exit 1
+            parts="$(get_partitions | jq --raw-output '.[][] | select(.children | length > 0) | select(.children[].parttype=="6a85cf4d-1dd2-11b2-99a6-080020736631") | .children[].path')" || exit 1
             ;;
         efi)
             if [[ "${zfs_install_drive}" ]]; then
                 parts="$(get_partitions | jq --raw-output '.[][] | select(.path=="'"${zfs_install_drive}"'") | select(.parttype=="c12a7328-f81f-11d2-ba4b-00a0c93ec93b") | .path')" || exit 1
             else
-                parts="$(get_partitions | jq --raw-output '.[][] | select(.parttype=="c12a7328-f81f-11d2-ba4b-00a0c93ec93b") | .path')" || exit 1
+                parts="$(get_partitions | jq --raw-output '.[][] | select(.children | length > 0) | select(.children[].parttype=="c12a7328-f81f-11d2-ba4b-00a0c93ec93b") | .children[].path')" || exit 1
             fi
             ;;
         *)