Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Partition einer Datei herausfinden

3 views
Skip to first unread message

Bernd Hohmann

unread,
Nov 5, 2009, 12:22:36 PM11/5/09
to
Hi,

ich habe einen Pfad zu einer Datei und möchte wissen, auf welcher
Partition das File liegt.

Rein: /home/bernd/test.tmp
Raus: /dev/sda2

Bernd

--
Visit http://www.nixwill.de and http://www.spammichvoll.de
jean....@nixwill.de & bernado....@spammichvoll.de

Juergen Ilse

unread,
Nov 5, 2009, 1:04:58 PM11/5/09
to
Hallo,

Bernd Hohmann <bernd.hohma...@freihaendler.com> wrote:
> ich habe einen Pfad zu einer Datei und möchte wissen, auf welcher
> Partition das File liegt.
>
> Rein: /home/bernd/test.tmp
> Raus: /dev/sda2

Wie waere es mit der ganz dummdreistem Methode?

du /home/bernd/test.tmp

und den ersten String der zweiten Zeile herausschneiden ...

Tschuess,
Juergen Ilse (jue...@usenet-verwaltung.de)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...

Message has been deleted

Juergen Ilse

unread,
Nov 5, 2009, 1:45:53 PM11/5/09
to
Hallo,

Torsten Fleischmann <TorstenFl...@web.de> wrote:
> * Juergen Ilse schrieb:


>> Bernd Hohmann <bernd.hohma...@freihaendler.com> wrote:
>>> ich habe einen Pfad zu einer Datei und möchte wissen, auf welcher
>>> Partition das File liegt.
>
>>> Rein: /home/bernd/test.tmp
>>> Raus: /dev/sda2
>
>> Wie waere es mit der ganz dummdreistem Methode?
>
>> du /home/bernd/test.tmp

ARGG! Ich meinte natuerlich "sf" und nicht "du" ...

>> und den ersten String der zweiten Zeile herausschneiden ...
>

> Welche Zweite Zeile?
> ,----
> | ~ % du /home/toasti/schwarz.pdf
> | 4 /home/toasti/schwarz.pdf
> `----

Diese da:

root@talaxia:~# df /tmp/dactive.kp
Filesystem 1K-blocks Used Available Use% Mounted on
/tmp 262144 21212 240932 9% /tmp
root@talaxia:~#

> ,----
> | ~ % du --version
> | du (GNU coreutils) 7.6
> | Copyright © 2009 Free Software Foundation, Inc.
> | Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl.html>
> | Dies ist freie Software: Sie können sie ändern und weitergeben.
> | Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt.
> |
> | Geschrieben von Torbjörn Granlund, David MacKenzie, Paul Eggert
> | und Jim Meyering.
> `----

root@talaxia:~# df --version
df (GNU coreutils) 7.4
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Torbjörn Granlund, David MacKenzie, and Paul Eggert.
root@talaxia:~#

Message has been deleted

Helmut Hullen

unread,
Nov 5, 2009, 2:39:00 PM11/5/09
to
Hallo, Torsten,

Du meintest am 05.11.09:

>> root@talaxia:~# df /tmp/dactive.kp

> Leider gibt es da auch nicht *immer* die Entsprechende Partition...

> ,----
> | ~ % df /etc/cups/cupsd.conf
> | Dateisystem Gr��e Benut Verf Ben% Eingeh�ngt auf
> | /dev/root 502M 71M 432M 15% /
> `----

Scheint ein spezielles Problem von "/" zu sein, nicht nur im "df"-
Umfeld.

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

Juergen Ilse

unread,
Nov 5, 2009, 3:25:54 PM11/5/09
to
Hallo,

Torsten Fleischmann <TorstenFl...@web.de> wrote:
> * Juergen Ilse schrieb:

>> Bernd Hohmann <bernd.hohma...@freihaendler.com> wrote:
>>> ich habe einen Pfad zu einer Datei und möchte wissen, auf welcher
>>> Partition das File liegt.
>
>>> Rein: /home/bernd/test.tmp
>>> Raus: /dev/sda2
>
>> Wie waere es mit der ganz dummdreistem Methode?
>
>> du /home/bernd/test.tmp

ARGG! Ich meinte natuerlich "df" und nicht "du" ...
[Tippfehler nun korrigiert: natuerlich musste es "df" heissen ...]

>> und den ersten String der zweiten Zeile herausschneiden ...
>

Tschuess,

Juergen Ilse

unread,
Nov 5, 2009, 3:29:05 PM11/5/09
to
Hallo,

Torsten Fleischmann <TorstenFl...@web.de> wrote:
> * Juergen Ilse schrieb:

>> Diese da:
>
>> root@talaxia:~# df /tmp/dactive.kp
>> Filesystem 1K-blocks Used Available Use% Mounted on
>> /tmp 262144 21212 240932 9% /tmp
>> root@talaxia:~#

> Leider gibt es da auch nicht *immer* die Entsprechende Partition...

Wenn es ein Blockdevice gewesen waere schon, aber hier war es kein
Blockdevice sondern ein tmpfs ...

> ,----
> | ~ % df /etc/cups/cupsd.conf

> | Dateisystem Größe Benut Verf Ben% Eingehängt auf


> | /dev/root 502M 71M 432M 15% /
> `----

... und /dev/root ist vermutlich der Link auf die root-Partition ...

Markus Wichmann

unread,
Nov 5, 2009, 3:13:35 PM11/5/09
to
Torsten Fleischmann (TorstenFl...@web.de) schrieb:
> * Juergen Ilse schrieb:

>
>> Diese da:
>
>> root@talaxia:~# df /tmp/dactive.kp
>> Filesystem 1K-blocks Used Available Use% Mounted on
>> /tmp 262144 21212 240932 9% /tmp
>> root@talaxia:~#
>
> Leider gibt es da auch nicht *immer* die Entsprechende Partition...
>
> ,----
>| ~ % df /etc/cups/cupsd.conf
>| Dateisystem Größe Benut Verf Ben% Eingehängt auf
>| /dev/root 502M 71M 432M 15% /
> `----
>
>
>

Dan schieb halt ein "readlink -f" nach:

% readlink -f /dev/root
/dev/sda4

HTH,
Markus
--
Nur weil ein Genie nix reißt, muß ja nun nicht gleich jeder Idiot
pausieren... Bully hats ja auch geschafft.
-- gUnter nanonüm in de.alt.anime

Christian Weisgerber

unread,
Nov 5, 2009, 3:03:07 PM11/5/09
to
Juergen Ilse <jue...@usenet-verwaltung.de> wrote:

> > ich habe einen Pfad zu einer Datei und mᅵchte wissen, auf welcher
> > Partition das File liegt.
>

> Wie waere es mit der ganz dummdreistem Methode?
>
> du /home/bernd/test.tmp

Das ist sicher ein Tippfehler fᅵr df(1).
Ja, so macht man das.

--
Christian "naddy" Weisgerber na...@mips.inka.de

Juergen P. Meier

unread,
Nov 6, 2009, 12:44:13 AM11/6/09
to
Bernd Hohmann <bernd.hohma...@freihaendler.com>:
> ich habe einen Pfad zu einer Datei und mᅵchte wissen, auf welcher
> Partition das File liegt.
>
> Rein: /home/bernd/test.tmp
> Raus: /dev/sda2

df

HTH,
Juergen

Juergen P. Meier

unread,
Nov 6, 2009, 12:45:41 AM11/6/09
to
Torsten Fleischmann <TorstenFl...@web.de>:
> * Juergen Ilse schrieb:

>
>> Diese da:
>
>> root@talaxia:~# df /tmp/dactive.kp
>> Filesystem 1K-blocks Used Available Use% Mounted on
>> /tmp 262144 21212 240932 9% /tmp
>> root@talaxia:~#
>
> Leider gibt es da auch nicht *immer* die Entsprechende Partition...

df gibt *immer* den Mountpoint und das gemountete Device an.

Das kann durchaus mal ein Symlink sein, oder bei eienm Filesystem, das
keine Devices kennt irgend eine Wahlfreie Zeichenkette (wie in obigem
Beispiel).

> ,----
>| ~ % df /etc/cups/cupsd.conf

>| Dateisystem Grᅵᅵe Benut Verf Ben% Eingehᅵngt auf


>| /dev/root 502M 71M 432M 15% /
> `----

Hier ist /dev/root die gemountete Partition. Wenn der OP bei einem
Blockdevice das Blockdevice erfahren will, muss er ggf. noch den
Symlinks folgen bzw. mit ls -l die major/minor-Device-IDs auslesen
(falls /dev/root kein symlink ist)

$ ls -l /dev/root
brw------- 1 root root 9, 1 Jan 29 2009 /dev/root

und bei Linux mittels /proc/partitions der Partition zuordnen.

In Shell:

df "$FILE" | tail -1 | read DEV foo
ls -lL "$DEV" | read foo foo foo foo foo mcomma minor foo
major=${mcomma%,}
grep " $major *$minor " /etc/partitions | read foo foo foo part
echo "Partition: $part"

voila.

Juergen
--
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)

Hauke Laging

unread,
Nov 6, 2009, 4:37:59 AM11/6/09
to
Juergen P. Meier schrieb am Freitag 06 November 2009 06:45:

> Symlinks folgen bzw. mit ls -l die major/minor-Device-IDs auslesen
> (falls /dev/root kein symlink ist)

Wenn man die haben will, nimmt man
stat --format=%D

(ja, ja, wenn man das hat...)


CU

Hauke
--
http://www.hauke-laging.de/ideen/

Helmut Hullen

unread,
Nov 6, 2009, 5:09:00 AM11/6/09
to
Hallo, Markus,

Du meintest am 05.11.09:

>>> root@talaxia:~# df /tmp/dactive.kp
>>> Filesystem 1K-blocks Used Available Use% Mounted on
>>> /tmp 262144 21212 240932 9% /tmp
>>> root@talaxia:~#
>>
>> Leider gibt es da auch nicht *immer* die Entsprechende Partition...
>>
>> ,----
>> | ~ % df /etc/cups/cupsd.conf

>> | Dateisystem Gr��e Benut Verf Ben% Eingeh�ngt auf


>> | /dev/root 502M 71M 432M 15% /
>> `----
>>
>>
>>

> Dann schieb halt ein "readlink -f" nach:

> % readlink -f /dev/root
> /dev/sda4

Liefert hier (Slackware, ohne "udev") nicht die gew�nschte Auskunft.

"df" liefert (verk�rzt)

rootfs ... ... /
/dev/root.old ... ... /initrd
/dev/root ... ... /

"readlink -f /dev/root" liefert "/dev/root"

"stat --format=%D" liefert 801 (also major/minor).

Von "major/minor" zu "/dev/xyz" zu kommen, ist vielleicht ein weiteres
Problem, insbesondere dann, wenn "xyz" noch mal wieder aus Verzeichnis/
Device besteht (z.B. Mylex RAID oder Compaq IDA).

"/proc/partitions" k�nnte weiterhelfen, "/sys/block" vielleicht auch.
"/usr/src/linux/Documentation/devices.txt" ist f�r Automaten nur schwer
auswertbar.

Hauke Laging

unread,
Nov 7, 2009, 9:24:16 PM11/7/09
to
Helmut Hullen schrieb am Freitag 06 November 2009 11:09:

> Von "major/minor" zu "/dev/xyz" zu kommen, ist vielleicht ein
> weiteres Problem,

Ich habe das mal erledigt. Zugegebenermaßen, weil ich es anfangs
unterschätzt habe :-) , aber find kennt zu meinem Erstaunen
anscheinend keine Tests auf major und minor number bei block devices
(und kann die auch nicht ausgeben).

cmd:> file=/home/hl/.bashrc
cmd:> mm_hex=$(stat --format=%D "$file" | tr '[a-z]' '[A-Z]')
cmd:> echo $mm_hex
FD0B
cmd:> major_hex=${mm_hex%??}
cmd:> echo $major_hex
FD
cmd:> minor_hex=${mm_hex#$major_hex}
cmd:> echo $minor_hex
0B
cmd:> read major_dec minor_dec <<EOF
cont. cmd:> $(echo $(echo "ibase=16;${major};${minor}" | bc))
cont. cmd:> EOF
cmd:> echo $major_dec
253
cmd:> echo $minor_dec
11
cmd:> devname=$(find -P /dev/ -type b | xargs /bin/ls -lngGU |
awk -v major=$major_dec, -v minor=$minor_dec \
'$3 == major && $4 == minor { print $NF; exit; }')
cmd:> echo $devname
/dev/dm-11

Wenn man alle Treffer für eine major-minor-Kombination haben will,
nimmt man einfach das exit raus, muss sich dann aber natürlich mit
der Fallunterscheidung befassen.


Hauke
--
http://www.hauke-laging.de/ideen/

0 new messages