Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: For loop met alle partities op het systeem.  (gelezen 921 keer)

Offline bartveurink

  • Lid
  • Steunpunt: Nee
For loop met alle partities op het systeem.
« Gepost op: 2016/06/28, 10:34:14 »
Onderstaande code wil ik gebruiken waarbij alle partities een voor een worden aangekoppeld. Daarbij gebruik ik file globbing m.b.v. /dev/sd??*. Vervolgens als het aankoppelen niet mogelijk is, de loop stoppen en verdergaan met de volgende partitie. Mijn vraag is wat ik op de plek van ?? moet neerzetten om de loop dus daar te stoppen met de waarde die $dev heeft en met de volgende waarde verder gaan.

mpoint=/mnt/tmp
mkdir -p $mpoint

for dev in /dev/sd??*
do
    mount $dev $mpoint || echo "$dev: cant mount" && ??
    # vervolg van code bij het kunnen aankoppelen.
done

Offline Nero

  • Lid
  • Steunpunt: Ja
Re: For loop met alle partities op het systeem.
« Reactie #1 Gepost op: 2016/06/28, 11:17:25 »
for dev in $(lsblk -l | awk '$6=="part" {print $1}')
do
    echo "/dev/$dev"
done

Offline bartveurink

  • Lid
  • Steunpunt: Nee
Re: For loop met alle partities op het systeem.
« Reactie #2 Gepost op: 2016/06/28, 11:50:31 »
Het probleem is dat de eerste partitie een BIOS boot partitie is. Deze word met lsblk ook als het type part gezien, maar kan toch niet aangekoppeld worden. De bedoeling is dat het script aangeeft dat aankoppelen niet lukt. Vervolgens verder gaan met partitie /dev/sda2 enz. Dit werkt met beide methodes niet.

Offline Nero

  • Lid
  • Steunpunt: Ja
Re: For loop met alle partities op het systeem.
« Reactie #3 Gepost op: 2016/06/28, 12:36:22 »
echo "$dev: cant mount" && continueskipt naar de volgende loop

Offline h2o

  • Lid
  • Steunpunt: Nee
Re: For loop met alle partities op het systeem.
« Reactie #4 Gepost op: 2016/06/28, 14:56:51 »
Onderstaande code wil ik gebruiken waarbij alle partities een voor een worden aangekoppeld.
Ik ben wel benieuwd wat je hiermee wil doen, want met /etc/fstab kun je dat met het opstarten al regelen?
Laptops + werkstations: Debian Stable + backports, server Debian Stable.
Test-laptop: Debian Testing/Unstable

Offline bartveurink

  • Lid
  • Steunpunt: Nee
Re: For loop met alle partities op het systeem.
« Reactie #5 Gepost op: 2016/07/01, 17:53:42 »
Code van mijn script staaat hieronder. Het doel ervan is dat het /etc/lsb-release van alle partities worden weergeven. Ik wil meerdere besturingssystemen installeren om ze uit te proberen. Dit script laat zien welke besturingssystemen op welke (root)partities staan.

#!/bin/bash

vfile=/etc/lsb-release
mpoint=/mnt/tmp

mkdir -p $mpoint

for dev in $(lsblk -l | awk '$6=="part" {print $1}')
do
echo "[/dev/$dev]"
if a=`mount | grep "^/dev/$dev"` > /dev/null
then
echo "mounted"
m=$(echo $a | awk '{print $3}')
if [ $m = "/" ]
then
[ -f $vfile ] && cat $vfile
else
[ -f $m/$vfile ] && cat $m/$vfile
fi
else
mount /dev/$dev $mpoint > /dev/null || echo "cant mount $dev" && continue
[ -f  $mpoint/$vfile ] && cat $mpoint/$vfile
sleep 1
umount /dev/$dev
fi
done