Use Preseed para escolher discos de instalação com base no tamanho ou tipo

1

Eu tenho um script preseed que cria um espelho de ataque dos dois primeiros discos (/ dev / sda, / dev / sdb)

d-i partman/early_command string \
DISKA=$(list-devices disk|head -n1);\
DISKB=$(list-devices disk|head -n2|tail -1);\
if [ "${DISKA#/dev/cciss}" != "$DISKA" ]; then DISKAP="p"; fi;\
if [ "${DISKB#/dev/cciss}" != "$DISKB" ]; then DISKBP="p"; fi;\
if [ "$DISKA" = "$DISKB" ]; then\
debconf-set partman-auto/disk "$DISKA";\
debconf-set partman-auto-raid/recipe "1 2 0 ext3 /boot ${DISKA}${DISKAP}1 . 1 2 0 lvm - ${DISKA}${DISKAP}5 .";\
debconf-set grub-installer/bootdev "$DISKA";\
else\
debconf-set partman-auto/disk "$DISKA $DISKB";\
debconf-set partman-auto-raid/recipe "1 2 0 ext3 /boot ${DISKA}${DISKAP}1#${DISKB}${DISKBP}1 . 1 2 0 lvm - ${DISKA}${DISKAP}5#${DISKB}${DISKBP}5 .";\
debconf-set grub-installer/bootdev "$DISKA $DISKB";\
fi;

Mas eu preciso escolher disco em tamanho ou tipo em vez de sda / sdb. Por exemplo eu tenho 2 discos de 160GB que eu quero usar em vez dos dois 2TB SSD que são escolhidos como sda / sdb

Como alguém abordaria isso usando o preseed?

    
por davideagle 08.12.2015 / 13:29

1 resposta

1

Esta pode não ser a solução mais elegante, mas foi o truque para mim. Ele seleciona os dois primeiros discos com menos de 1000 MB para serem usados no ataque

d-i partman/early_command string \
NODEVICES=$(list-devices disk | wc -l);\
SIZELIMIT=1000;\
FOUNDDISK=0;\
COUNTER=0;\
while [ "$COUNTER" -ne "$NODEVICES" ]; do\
COUNTER=$((COUNTER+1));\
if [ $COUNTER -eq 1 ]; then\
DEVICE=$(list-devices disk|head -n1);\
else DEVICE=$(list-devices disk|head -n$COUNTER|tail -1);fi;\
echo $DEVICE >> /disks.txt;\
DEVICESIZE=$(fdisk -l|grep -o "$DEVICE: [0-9.]* GB"|grep -o "[0-9.]*");\
INT=${DEVICESIZE%.*};\
if [ $INT -lt $SIZELIMIT ]; then\
if [ $FOUNDDISK -eq 0 ]; then FOUNDDISK=1; DISKA=${DEVICE};\
elif [ $FOUNDDISK -eq 1 ]; then FOUNDDISK=2; DISKB=${DEVICE};fi;\
fi;\
done;\
if [ "${DISKA#/dev/cciss}" != "$DISKA" ]; then DISKAP="p"; fi;\
if [ "${DISKB#/dev/cciss}" != "$DISKB" ]; then DISKBP="p"; fi;\
if [ "$DISKA" = "$DISKB" ]; then\
debconf-set partman-auto/disk "$DISKA";\
debconf-set partman-auto-raid/recipe "1 2 0 ext3 /boot ${DISKA}${DISKAP}1 . 1    2 0 lvm - ${DISKA}${DISKAP}5 .";\
debconf-set grub-installer/bootdev "$DISKA";\
else\
debconf-set partman-auto/disk "$DISKA $DISKB";\
debconf-set partman-auto-raid/recipe "1 2 0 ext3 /boot ${DISKA}${DISKAP}1#${DISKB}${DISKBP}1 . 1 2 0 lvm - ${DISKA}${DISKAP}5#${DISKB}${DISKBP}5 .";\
debconf-set grub-installer/bootdev "$DISKA $DISKB";\
fi;
    
por davideagle 14.01.2016 / 13:00