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
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 ...
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:~#
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".
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,
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 ...
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
> > 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
df
HTH,
Juergen
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)
> 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
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.
> 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.