• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Frage zu mount

oelk

Member
Hallo,

ich hätte gerne den Mountpoint einer Partition geändert.

/usr/lib/oracle -> /u01

leider funktioniert
Code:
mount --move /usr/lib/oracle /u01
nicht.

Dann fehlt nämlich lost+found auf /u01.

Mach ich was falsch?

Ich löse es jetzt erstmal so:
Code:
if ! test -d /u01/lost+found; then
  umount /usr/lib/oracle
  sed -i s#\/usr\/lib\/oracle#\/u01#g /etc/fstab
  mkdir /u01
  mount /u01
  rm -r /usr/lib/oracle
else 
  echo Der Pfad oder das Script ist falsch
  exit
fi

MfG
 

spoensche

Moderator
Teammitglied
Du machst es viel zu umständlich.

Ein
Code:
mount --bind /usr/lib/oracle /u01

und Problem gelöst.
 
OP
O

oelk

Member
Hallo,

'After this call the same contents is accessible in two places.'
Ich wollte eigentlich meine Files nicht an zwei Orten sehen.
Nach meinem reboot ist das auch weg und /usr/lib/oracle ist leer.
Wie habt man das wieder auf?

Komischerweise hat --move eben auf einer openSUSE 12.2 funktioniert,
auf einer openSUSE 13.1 aber nicht.

MfG
 

josef-wien

Ultimate Guru
Einhängepunkte von Partitionen werden (mit Ausnahme von Wechseldatenträgern) über /etc/fstab festgelegt. Ich habe mich ohnehin gewundert, warum Du die dort getroffene Definition dann nur für das laufende System temporär mit --move ändern wolltest.

P. S. --move funktioniert auch bei 13.1,
oelk schrieb:
Dann fehlt nämlich lost+found auf /u01.
muß wohl eine Unpäßlichkeit Deines Systems sein.
 
OP
O

oelk

Member
josef-wien schrieb:
Einhängepunkte von Partitionen werden (mit Ausnahme von Wechseldatenträgern) über /etc/fstab festgelegt. Ich habe mich ohnehin gewundert, warum Du die dort getroffene Definition dann nur für das laufende System temporär mit --move ändern wolltest.
Die fstab ändere ich ja hinterher mit sed.
Ich möchte per Script das eine oder das andere DBMS auf einer eigenen Partition installieren.
XE10=/usr/lib/oracle
XE11=/u01

josef-wien schrieb:
P. S. --move funktioniert auch bei 13.1,
oelk schrieb:
Dann fehlt nämlich lost+found auf /u01.
muß wohl eine Unpäßlichkeit Deines Systems sein.

Das will ich nicht ausschließen.

also ein:
Code:
mount --move /u01 /usr/lib/oracle

sagt mir:
Code:
mount: bad option. Note that moving a mount residing under a shared
          mount is is unsupported
          In some cases useful info is found in syslog - try
          dmesg | tail or so
Hm. openSUSE 13.1 minimal Installation mit systemd,ohne die units lvm2*, grub2
und net.ifnames=0 in VirtualBox 4.3.6 (das ist sowieso schwierig...)
Und mit systemd steh ich eh auf Kriegsfuß.
Die Vorversionen von openSUSE habe ich alle mit sysvinit installiert, da hab ich scheinbar keine Probleme.

MfG
 

abgdf

Guru
oelk schrieb:
Ich löse es jetzt erstmal so:
Code:
if ! test -d /u01/lost+found; then
  umount /usr/lib/oracle
  sed -i s#\/usr\/lib\/oracle#\/u01#g /etc/fstab
  mkdir /u01
  mount /u01
  rm -r /usr/lib/oracle
else 
  echo Der Pfad oder das Script ist falsch
  exit
fi
Wenn Du hier mit "sed" die "/etc/fstab" umschreibst, bleibt das nicht so, ist das beim nächsten Reboot wieder weg?

Wie sieht denn die "/etc/fstab"-Zeile zu "/usr/lib/oracle" aus?
Man kann mount auch ohne "/etc/fstab" einsetzen, dann muß man die Daten von dort "mount" per Option mitgeben, das Dateisystem etwa mit "-t". Beispiel:
Code:
mount -t ext3 /dev/hda4 /mnt/mydirectory
Genaueres könnte man mit Deiner "/etc/fstab"-Zeile sagen.
 

josef-wien

Ultimate Guru
oelk schrieb:
Ich möchte per Script das eine oder das andere DBMS auf einer eigenen Partition installieren.
XE10=/usr/lib/oracle
XE11=/u01
Heißt das, daß Du einmal die eine und einmal die andere Partiton unter /usr/lib/oracle einhängen (und die gerade nicht benötigte unter /u01 im Zugriff haben) willst? In diesem Fall würde ich in der fstab die beiden als /u01 und /u02 einhängen und dann im Bedarfsfall wie von spoensche angeregt mit --bind zu /usr/lib/oracle (das in der fstab nicht vorkommt) und am Ende der Aktion mit umount /usr/lib/oracle arbeiten.

oelk schrieb:
mount: bad option. Note that moving a mount residing under a shared mount is is unsupported
Das könnte mit dem Inhalt der fstab zusammenhängen.
 
OP
O

oelk

Member
Moin,

josef-wien schrieb:
Heißt das, daß Du einmal die eine und einmal die andere Partiton unter /usr/lib/oracle einhängen (und die gerade nicht benötigte unter /u01 im Zugriff haben) willst? In diesem Fall würde ich in der fstab die beiden als /u01 und /u02 einhängen und dann im Bedarfsfall wie von spoensche angeregt mit --bind zu /usr/lib/oracle (das in der fstab nicht vorkommt) und am Ende der Aktion mit umount /usr/lib/oracle arbeiten.
Ich hab nur 4 primäre Partitionen:
swap
/
/u01
/srv/samba

Je nachdem welches DBMS installiert werden soll, wird /u01 'umgebogen'.

josef-wien schrieb:
oelk schrieb:
mount: bad option. Note that moving a mount residing under a shared mount is is unsupported
Das könnte mit dem Inhalt der fstab zusammenhängen.
Das wäre dann aber ein neues feature, das mit systemd zusammenhängt. Mit sysvinit klappt das ja.

MfG
 
OP
O

oelk

Member
Moin,

abgdf schrieb:
Wenn Du hier mit "sed" die "/etc/fstab" umschreibst, bleibt das nicht so, ist das beim nächsten Reboot wieder weg?
Ne, die bleibt und nach dem korekten booten auch so geändert wieder da.

abgdf schrieb:
Wie sieht denn die "/etc/fstab"-Zeile zu "/usr/lib/oracle" aus?
XE10 (aus einer openSUSE 12.2):
Code:
/dev/sda1            swap                 swap       defaults              0 0
/dev/sda2            /                    ext4       acl,user_xattr        1 1
/dev/sda4            /srv/samba           ext4       acl,user_xattr        1 2
/dev/sda3            /usr/lib/oracle      ext4       acl,user_xattr        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/dvd             /media/dvd           auto       noauto,user,sync,exec,ro 0 0

XE11 (aus einer openSUSE 12.2):
Code:
/dev/sda1            swap                 swap       defaults              0 0
/dev/sda2            /                    ext4       acl,user_xattr        1 1
/dev/sda4            /srv/samba           ext4       acl,user_xattr        1 2
/dev/sda3            /u01                 ext4       acl,user_xattr        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/dvd             /media/dvd           auto       noauto,user,sync,exec,ro 0 0

MfG
 

abgdf

Guru
oelk schrieb:
Code:
/dev/sda3            /usr/lib/oracle      ext4       acl,user_xattr        1 2
Das müßte man eigentlich so mounten können:
Code:
su
umount /usr/lib/oracle # gegebenenfalls
cd /root
mkdir u01
mount -t ext4 -o acl,user_xattr /dev/sda3 /root/u01
cd u01
ls
Laut diesem bezeichnet die "1" in "1 2" in der fstab-Zeile, daß die Partition "gesichert" sein soll (mit "dump"). Bin nicht sicher, ob und wie man das in der mount-Zeile berücksichtigen müßte. Vielleicht nicht.
 
OP
O

oelk

Member
abgdf schrieb:
oelk schrieb:
Code:
/dev/sda3            /usr/lib/oracle      ext4       acl,user_xattr        1 2
Das müßte man eigentlich so mounten können:
Code:
su
umount /usr/lib/oracle # gegebenenfalls
cd /root
mkdir u01
mount -t ext4 -o acl,user_xattr /dev/sda3 /root/u01
cd u01
ls
Laut diesem bezeichnet die "1" in "1 2" in der fstab-Zeile, daß die Partition "gesichert" sein soll (mit "dump"). Bin nicht sicher, ob und wie man das in der mount-Zeile berücksichtigen müßte. Vielleicht nicht.

Siehe oben in meinem ersten Posting:
Code:
if ! test -d /u01/lost+found; then
  umount /usr/lib/oracle
  sed -i s#\/usr\/lib\/oracle#\/u01#g /etc/fstab
  mkdir /u01
  mount /u01
  rm -r /usr/lib/oracle
else
  echo Der Pfad oder das Script ist falsch
  exit
fi
bzw /u01 nach /usr/lib/oracle

Mein Frage war ja nur, warum 'mount --move' nicht mehr funktioniert.
Bis openSUSE 12.2 mit sysvinit funktioniert das noch.
Ich vermute, das systemd die Finger drauf hat.

MfG
 

abgdf

Guru
oelk schrieb:
abgdf schrieb:
oelk schrieb:
Code:
/dev/sda3            /usr/lib/oracle      ext4       acl,user_xattr        1 2
Das müßte man eigentlich so mounten können:
Code:
su
umount /usr/lib/oracle # gegebenenfalls
cd /root
mkdir u01
mount -t ext4 -o acl,user_xattr /dev/sda3 /root/u01
cd u01
ls
Laut diesem bezeichnet die "1" in "1 2" in der fstab-Zeile, daß die Partition "gesichert" sein soll (mit "dump"). Bin nicht sicher, ob und wie man das in der mount-Zeile berücksichtigen müßte. Vielleicht nicht.

Siehe oben in meinem ersten Posting:
Code:
if ! test -d /u01/lost+found; then
  umount /usr/lib/oracle
  sed -i s#\/usr\/lib\/oracle#\/u01#g /etc/fstab
  mkdir /u01
  mount /u01
  rm -r /usr/lib/oracle
else
  echo Der Pfad oder das Script ist falsch
  exit
fi
bzw /u01 nach /usr/lib/oracle
Hatte ich gesehen. Aber für ein temporäres Mounten mit sed in der /etc/fstab rumzueditieren, halte ich nicht für den besten Weg (auch wenn's vielleicht funktioniert).
Statt
Code:
if ! test -d /u01/lost+found; then
würde ich auch eher
Code:
if test -n "$(mount | grep u01)"; then
schreiben. Ansonsten ist gegen so ein Skript nichts einzuwenden.
oelk schrieb:
Mein Frage war ja nur, warum 'mount --move' nicht mehr funktioniert.
Bis openSUSE 12.2 mit sysvinit funktioniert das noch.
Ich vermute, das systemd die Finger drauf hat.
Könnte sein. Das sind diese negativen Entwicklungen, die dem User immer mehr Kontrolle entziehen, und damit in der Regel einem anderen mehr Kontrolle verschaffen. Leider auch unter Linux.
 
OP
O

oelk

Member
Moin,

ich probier mal Deinen Vorschlag aus.

abgdf schrieb:
Könnte sein. Das sind diese negativen Entwicklungen, die dem User immer mehr Kontrolle entziehen, und damit in der Regel einem anderen mehr Kontrolle verschaffen. Leider auch unter Linux.
Das sehe ich auch so, da hatte wohl der Herr LP sysvinit nicht verstanden und strickt halt mal was neues.

MfG
 
Oben