Я пытаюсь создать файл preseed для своих систем с двумя жесткими дисками. Я хочу установить ОС на самый маленький диск, но в некоторых системах этот диск помечен как sdb, а другие - как sda. Есть ли способ выбрать самый маленький диск?
d-i partman/early_command string \
PRIMARYDISK=/dev/$(lsblk -Sn -o NAME --sort SIZE --include 8 | head -n 1) ; \
debconf-set partman-auto/disk "$PRIMARYDISK" ;
Я видел, как люди выполняли указанную выше команду, но получаю, что lsblk не найден. Есть идеи?
Это сработало с использованием 20.04 Ubuntu Server legacy installer
d-i partman/early_command string \
PRIMARYDISK=/dev/$( X=$(cat /sys/block/sd?/size|sort -n|head -1); for i in /sys/block/sd?; do [ $X -eq $(cat $i/size) ] && echo $i | sed -e s#.*/## ; done ) ; \
debconf-set partman-auto/disk "$PRIMARYDISK"
Он использует файловую систему /sys
для поиска самого маленького диска. lsblk
недоступен в среде установщика.
Я почти уверен, что вы используете команду из моего ответа, которая была основана на предположении, что lsblk
доступен. Это связано с тем, что комментарии ссылались на сообщение в блоге, где lsblk
использовалось аналогичным образом. Возможно, lsblk
раньше был доступен в старых выпусках, доступен в Debian или блог неправильный.