Como encontrar o arquivo em partions aleatórios, em seguida, montar essa partição

0

Estou tentando escrever um script em lote que encontrará um arquivo específico (EX. homomnt) em uma partição aleatória e, em seguida, montá-la na localização desejada (EX / home).

Notas adicionadas: serão usadas em vários computadores com local de partições de dispositivo diferente para uma pasta específica (ex: / home)

Longa história: Estou trabalhando em um projeto que envolve o LIVECD e atualmente montei a partição home como gravável, mas tenho que encontrar manualmente a partição do dispositivo em cada computador diferente. Eu não estou tentando acessar outros arquivos de usuários somente inicializar ao vivo cd montar partição da pasta de início e log off / on e todas as configurações, os dados estão lá .. Atualmente funciona muito bem, mas eu preciso de um script que é "fictício" prova para permitir que outros para inicializar o liveecd e não ter que adivinhar partições ou dispositivos.

Eu fiz scripts por algum tempo, mas nada tão avançado e eu poderia usar alguma ajuda.

Minhas idéias, mas dispostas a considerar qualquer coisa neste momento. Exemplo O script monta 1 partions to / lookup search por arquivo (.homemnt) e então desmonta a partição. Se não encontrar o arquivo, passa para o próximo dispositivo / partição Se encontrar o arquivo, salve a localização como variável, partição UNMOUNTS

Eu então preciso ser capaz de pegar essa variável para chamá-la em um comando de montagem. e montar partitsion como / home Eu não preciso montar pasta de usuários específica, apenas a partição inteira para / home

Sou novo em postar coisas e espero não ter ignorado a resposta em outro lugar. Qualquer ajuda será muito apreciada.

    
por mgeo202 29.05.2015 / 15:19

1 resposta

0

Isso deve ser feito

 
#!/bin/bash

declare -a mounted
i=0
while read m
do
    mounted[$i]="$m"
    i=$((i+1))
done < <(mount|grep ^/dev|awk '{print $1}')

function ismounted {
    for i in ${mounted[*]}
    do
        if [ "$1" == "$i" ] ;then
            return 0
        fi
    done
    return 1
}

tmp='mktemp -d /tmp/mount.XXXXXX'
found=""
while read m
do
    if ! ismounted $m; then
        mount $m $tmp 2>/dev/null
        r=$?
        if [ $r -eq 0 ] ;then
            if [ -f $tmp/.homemnt ] ;then
                found=$m
            fi
            umount $m
        fi
        if [ -n "$found" ]; then
            break
        fi
    fi
done < <(blkid -o device)
rmdir $tmp
if [ -n "$found" ] ;then
    mount $found /home
fi
echo $found
    
por solsTiCe 29.05.2015 / 16:44