Oeps, /lib en /bin verplaatst

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008
  • Reageer

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Goedenavond,

Ik heb per ongeluk de /bin en de /lib directory verplaatst op mijn linux bak. Nu kan ik het mv commando niet meer uitvoeren omdat hij /lib/ld-linux.so.2 niet meer vindt.

Ik heb geen remote services als ssh of sftp meer draaien, bestanden kan ik er dus niet meer op copeiren. Me enige optie is vanuit de console het op te lossen.

Probleem is dat ik echt geen linux expert ben. Hoe kan ik nu de 2 directory's terug plaatsen vanuit de console?

Error die ik krijg bij aanroepen van de "tools":
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Het $PATH heb ik wel al aangepast naar de verplaatste bin directory.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:45
Ik zou eens booten van een livecd, dan de verprutste partitie mounten en de directories terug verplaatsen. Misschien dat het ook al werkt als je de oude libdir in je LD_LIBRARY_PATH stopt, maar de livecd oplossing werkt zeker.

[ Voor 36% gewijzigd door Soultaker op 30-05-2007 21:59 ]


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Soultaker schreef op woensdag 30 mei 2007 @ 21:59:
Ik zou eens booten van een livecd, dan de verprutste partitie mounten en de directories terug verplaatsen. Misschien dat het ook al werkt als je de oude libdir in je LD_LIBRARY_PATH stopt, maar de livecd oplossing werkt zeker.
De livecd is inderdaad een optie. De server staat helas niet naast me maar in een remote datacenter. Ik heb dat inderdaad niet duidelijk vermeld, ik heb nu nog een SSH putty sessie als root openstaan. Zodra ik die verbreek kan ik er zo ie zo nooit meer bij, dan alleen fysiek.

Ik heb geen LD_LIBRARY_PATH variable gedifineerd staan, heb ik nu wel aangemaakt helaas zonder succes.

Probleem is dat de symbolic link van /lib/ld-linux.so.2 naar een niet bestaand pad verwijst (omdat ik hem verplaatst heb). Maar de symbolic link opnieuw aanmaken (ls) gaat niet, dan geeft ls dezelfde foutmelding als in mijn eerste post.

Andere opties zijn van harte welkom.

  • cherwin
  • Registratie: Maart 2006
  • Niet online
Typ in
# echo "/pad/naar/lib" >> /etc/ld.so.conf
# ldconfig
Dit voegt de nieuwe pad van de lib toe aan /etc/ld.so.conf, hierna kan je de directory's weer terugzetten en daarna zet je /etc/ld.so.conf weer goed.

[ Voor 69% gewijzigd door cherwin op 30-05-2007 22:30 ]

Tell me your problem, not the solution you think I should build for you.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:45
Ik denk dat ldconfig net zo goed niet werkt, als de oplossing met LD_LIBRARY_PATH niet werkt. Het zou me niets verbazen als die ld-linux.so.2 'speciaal' is (je hebt die nodig om andere dynamic libraries te laden).

Misschien moet je het eens met een static binary proberen, maar ja, hoe krijg je die op je systeem als je geen excecutables kunt starten. 8)7

[ Voor 26% gewijzigd door Soultaker op 30-05-2007 22:33 ]


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
cherwin schreef op woensdag 30 mei 2007 @ 22:27:
Typ in
# echo "/pad/naar/lib" >> /etc/ld.so.conf
# ldconfig
Dit voegt de nieuwe pad van de lib toe aan /etc/ld.so.conf, hierna kan je de directory's weer terugzetten en daarna zet je /etc/ld.so.conf weer goed.
echo werkt wel nog, maar echo weg laten schrijven naar een file in een directroy die aangemaakt moet worden helaas niet. Ik zie namelijk nu dat /sbin en /etc ook verplaatst zijn.

Ik geloof dat het zo niet gaat lukken. Morgen ochtend asap naar het datacenter toe.

Tenzij nog andere suggesties, bedankt voor de hulp!

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Of misschien werkt dat toch wel. Ik krijg bij het uitvoeren van de echo met capture naar een bestand de melding dat ld.so.conf niet bestaat. Kan dit bestand op een andere manier aanmaken, en daarna met info vullen?

-bash: /etc/ld.so.conf: No such file or directory

[ Voor 7% gewijzigd door BasXcore op 30-05-2007 22:40 ]


  • cherwin
  • Registratie: Maart 2006
  • Niet online
Hmm dat word wat moeilijker, probeer dit eens
# echo "/pad/naar/lib" > $HOME/ld.so.conf
# /pad/ldconfig -f $HOME/ld.so.conf

Tell me your problem, not the solution you think I should build for you.


  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

ik heb wel eens een verhaal van iemand gelezen die in een vergelijkbare situatie zat, maar waarvoor rebooten *geen* optie was, en die heeft het volgens mij uiteindelijk opgelost door een assembly over te typen :D

Maar een ritje naar dat ding toe gaat jou minder tijd kosten...

uit nieuwsgierigheid: hoe heb je "per ongeluk" zo'n beetje *alle* systeemdir's verplaatst? Dat moet je ook nog eens als root doen?

* smokalot is altijd extra voorzichtig als ie dat # ziet.

It sounds like it could be either bad hardware or software


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-02 13:45

deadinspace

The what goes where now?

Wat heb je precies gedaan? Waar staan /lib en /bin nu?
edit: Zijn de inhoud van /lib en /bin nog wel helemaal in orde?

[ Voor 40% gewijzigd door deadinspace op 30-05-2007 22:49 ]


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
smokalot schreef op woensdag 30 mei 2007 @ 22:43:
ik heb wel eens een verhaal van iemand gelezen die in een vergelijkbare situatie zat, maar waarvoor rebooten *geen* optie was, en die heeft het volgens mij uiteindelijk opgelost door een assembly over te typen :D

Maar een ritje naar dat ding toe gaat jou minder tijd kosten...

uit nieuwsgierigheid: hoe heb je "per ongeluk" zo'n beetje *alle* systeemdir's verplaatst? Dat moet je ook nog eens als root doen?

* smokalot is altijd extra voorzichtig als ie dat # ziet.
Het is een VMware ESX 3.0.1 machine, waarop de mounted VMFS volume bestanden verplaatst moeten worden. Standaard wordt alles met VMware onder root rights geplaatst. Dus verplaatsen moet ook onder root. Ik heb een spijtige tikfout in het vm commando geplaatst. Ik meen iets van vm /* /plaats/van/vmimages, gewoon source destination per ongeluk omgedraaid 8)7 8)7 . Dus nu zijn alle zaken vanuit de root overgeplaatst naar de lokatie van mijn VMimages.

Ik heb inmiddels alle VM's kunnen overplaatsen, maar die machine moet uiteraard weer spoedig in de lucht.

Herinstallatie VM ESX is de beste optie, kost me 30 minuten. Helaas wel en ritje.

  • cherwin
  • Registratie: Maart 2006
  • Niet online
Dus het is wel gelukt met de methode die ik net heb gepost?

Tell me your problem, not the solution you think I should build for you.


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
deadinspace schreef op woensdag 30 mei 2007 @ 22:47:
Wat heb je precies gedaan? Waar staan /lib en /bin nu?
edit: Zijn de inhoud van /lib en /bin nog wel helemaal in orde?
Ja, eigenlijk alle "systeem" bestanden van linux zijn verplaatst naar een subdirectory van de root.

Zie mijn vorige post wat ik precies gedaan heb.

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
cherwin schreef op woensdag 30 mei 2007 @ 22:53:
Dus het is wel gelukt met de methode die ik net heb gepost?
Nee, helaas. echo wil geen file aanmaken, op geen enkele lokatie, daar ik wel rechten toe heb. En ik heb geen bestaande ld.so.conf in een bestaande etc directory staan. Behalve dan in de geheel verplaatste root directory.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-02 13:45

deadinspace

The what goes where now?

BasXcore schreef op woensdag 30 mei 2007 @ 22:53:
Ja, eigenlijk alle "systeem" bestanden van linux zijn verplaatst naar een subdirectory van de root.
Dat is geen precies antwoord op mijn vragen, het is mij nog steeds niet 100% duidelijk of de inhoud van lib en bin nog 100% intact is, en ik weet nog steeds niet waar ze nu staan. En in zulk soort situaties kunnen details nogal eens uitmaken, omdat er maar net iets verkeerd hoeft te gaan om het helemaal om zeep te helpen. ;)

Magoed, probeer eens:
LD_LIBRARY_PATH=/bla/lib/ /bla/lib/ld-linux.so.2 /bla/bin/mv /bla/lib/ /bla/bin/ /

Waar je '/bla' uiteraard dient te vervangen door het pad waar lib en bin nu staan.

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
BasXcore schreef op woensdag 30 mei 2007 @ 22:55:
[...]


Nee, helaas. echo wil geen file aanmaken, op geen enkele lokatie, daar ik wel rechten toe heb. En ik heb geen bestaande ld.so.conf in een bestaande etc directory staan. Behalve dan in de geheel verplaatste root directory.
Ik zie dat ik wel in de root een file kan aanmaken. ik heb daar nu een ld.so.conf met daarin het path naar me verplaatste lib directory. Ik draai nu de ldonfig als volgt:

/vmimages/sbin/ldconfig -f ./ld.so.conf

Dan geeft ldconfig mij een fout terug:

/vmimages/sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: No such file or directory

Verwijderd

Kun je nog chrooten? (Denk het niet, maar zo ja, dan zou je kunnen proberen om daarna de / in je chroot-jail te mounten en dan vanuit je chroot te kopieeren)

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
deadinspace schreef op woensdag 30 mei 2007 @ 22:58:
[...]

Dat is geen precies antwoord op mijn vragen, het is mij nog steeds niet 100% duidelijk of de inhoud van lib en bin nog 100% intact is, en ik weet nog steeds niet waar ze nu staan. En in zulk soort situaties kunnen details nogal eens uitmaken, omdat er maar net iets verkeerd hoeft te gaan om het helemaal om zeep te helpen. ;)

Magoed, probeer eens:
LD_LIBRARY_PATH=/bla/lib/ /bla/lib/ld-linux.so.2 /bla/bin/mv /bla/lib/ /bla/bin/ /

Waar je '/bla' uiteraard dient te vervangen door het pad waar lib en bin nu staan.
Ja, sorry. De gehele structuur is 1:1 verplaatst naar de directory /vmimages, met behoud van structuur en bestanden. Ik ga nu het bovenstaande commando invoeren.

  • cherwin
  • Registratie: Maart 2006
  • Niet online
BasXcore schreef op woensdag 30 mei 2007 @ 23:00:
[...]


Ik zie dat ik wel in de root een file kan aanmaken. ik heb daar nu een ld.so.conf met daarin het path naar me verplaatste lib directory. Ik draai nu de ldonfig als volgt:

/vmimages/sbin/ldconfig -f ./ld.so.conf

Dan geeft ldconfig mij een fout terug:

/vmimages/sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: No such file or directory
Wat krijg je dan als je dit doet?
# echo > /ld.so.cache
# echo "/pad/naar/lib" > ld.so.conf
# /vmimages/sbin/ldconfig -f /ld.so.conf -C /ld.so.cache
Verwijderd schreef op woensdag 30 mei 2007 @ 23:01:
Kun je nog chrooten? (Denk het niet, maar zo ja, dan zou je kunnen proberen om daarna de / in je chroot-jail te mounten en dan vanuit je chroot te kopieeren)
Chroot gaat sowieso niet werken omdat die niet statisch gelinked is en je kan de echte root niet zien omdat je in een chroot jail zit. Dus dan ga je de bestanden niet kunnen kopieren.

[ Voor 25% gewijzigd door cherwin op 30-05-2007 23:13 ]

Tell me your problem, not the solution you think I should build for you.


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
BasXcore schreef op woensdag 30 mei 2007 @ 23:06:
[...]


Ja, sorry. De gehele structuur is 1:1 verplaatst naar de directory /vmimages, met behoud van structuur en bestanden. Ik ga nu het bovenstaande commando invoeren.
LD_LIBRARY_PATH=/bla/lib/ /bla/lib/ld-linux.so.2 /bla/bin/mv /bla .......

Door het invoeren van dit commando zijn de directory's overgeplaatst naar de root:
- bin
- lib

Uitvoeren van commando's in de bin directory zoals mv of ls werkt nog niet:
[root@SRV-VM01 bin]# mv
-bash: /vmimages/bin/mv: No such file or directory

[ Voor 10% gewijzigd door BasXcore op 30-05-2007 23:14 ]


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-02 13:45

deadinspace

The what goes where now?

BasXcore schreef op woensdag 30 mei 2007 @ 23:13:
Uitvoeren van commando's in de bin directory zoals mv of ls werkt nog niet:
[root@SRV-VM01 bin]# mv
-bash: /vmimages/bin/mv: No such file or directory
Omdat je PATH verkeerd staat?

Verwijderd

cherwin schreef op woensdag 30 mei 2007 @ 23:08:

Chroot gaat sowieso niet werken omdat die niet statisch gelinked is en je kan de echte root niet zien omdat je in een chroot jail zit. Dus dan ga je de bestanden niet kunnen kopieren.
Ja dat is jammer, maar over dat "zien" van die root in de jail: "Ik zou dan de schijf waar / op staat mounten in de chroot. Dat is wat ik bedoelde ;) Of dat is ook wat jij bedoelde en mag dat dus niet :p

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
deadinspace schreef op woensdag 30 mei 2007 @ 23:14:
[...]

Omdat je PATH verkeerd staat?
YES !!! Eureka !!! Werken !!! Ik had de PATH aangepast naar de verplaatste /lib en /bin directory.

Wat zou de volgende actie zijn om de overige directory's/bestanden weer 1:1 naar de root over te plaatsten? Wil graag niet weer dezelfde fout maken.

[ Voor 9% gewijzigd door BasXcore op 30-05-2007 23:18 ]


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-02 13:45

deadinspace

The what goes where now?

Uhm,
mv /vmimages/etc /vmimages/sbin /

?

(aangenomen dat het om etc en sbin gaat en dat die in /vmimages staan)
BasXcore schreef op woensdag 30 mei 2007 @ 23:17:
Ik had de PATH aangepast naar de verplaatste /lib en /bin directory.
Ja, dat was duidelijk te zien aan de foutmelding :P

[ Voor 46% gewijzigd door deadinspace op 30-05-2007 23:20 ]


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
deadinspace schreef op woensdag 30 mei 2007 @ 23:19:
Uhm,
mv /vmimages/etc /vmimages/sbin /

?

(aangenomen dat het om etc en sbin gaat en dat die in /vmimages staan)

[...]

Ja, dat was duidelijk te zien aan de foutmelding :P
Hehe... :P

Ik heb een tiental directory's die nog verplaatst moeten worden. Die ga ik nu doen.

Zijn er nog zaken die ik terug moet zetten nadat zodadelijk alles weer op zijn plek staat? Hierbij denk ik aan het commando die ik heb moeten uitvoeren om de /bin en /lib terug in de root te krijgen.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 01-02 13:45

deadinspace

The what goes where now?

Hoogstens van die ldconfig pogingen, maar volgensmij hebben die geen een keer daadwerkelijk wat weg kunnen schrijven.

  • cherwin
  • Registratie: Maart 2006
  • Niet online
Verwijderd schreef op woensdag 30 mei 2007 @ 23:17:
[...]


Ja dat is jammer, maar over dat "zien" van die root in de jail: "Ik zou dan de schijf waar / op staat mounten in de chroot. Dat is wat ik bedoelde ;) Of dat is ook wat jij bedoelde en mag dat dus niet :p
Dat bedoelde ik niet, and it's so crazy that it might just work :P

Tell me your problem, not the solution you think I should build for you.


Verwijderd

cherwin schreef op woensdag 30 mei 2007 @ 23:26:
[...]

Dat bedoelde ik niet, and it's so crazy that it might just work :P
Ja ik weet dat het gek is, maar het is wel een mogelijkheid :P

  • cherwin
  • Registratie: Maart 2006
  • Niet online
Verwijderd schreef op woensdag 30 mei 2007 @ 23:26:
[...]


Ja ik weet dat het gek is, maar het is wel een mogelijkheid :P
Als chroot zou werken wel ja, maar dan had hij geen probleem :)

Tell me your problem, not the solution you think I should build for you.


Verwijderd

cherwin schreef op woensdag 30 mei 2007 @ 23:29:
[...]

Als chroot zou werken wel ja, maar dan had hij geen probleem :)
Vond net dit op google:
/usr/sbin/chroot: cannot execute usr/sbin/ldconfig: No such file or directory
:+

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Inmiddels draait VMware ESX weer zoals het hoort. Ik plaatst er nog geen VM's op todat ik er zeker van ben dat hij goed blijft werken.

Alle beheers tools e.d. zijn weer operationeel, dus daar kan ik weer mee aan de slag.

Ik ga wel degelijk een andere methode maken om in het vervolg dit soort stomme fouten te doen verkomen.

Ik wil jullie allen bedanken! Nog een goede avond! _/-\o_

  • cherwin
  • Registratie: Maart 2006
  • Niet online
Verwijderd schreef op woensdag 30 mei 2007 @ 23:36:

Vond net dit op google:
/usr/sbin/chroot: cannot execute usr/sbin/ldconfig: No such file or directory

:+
cherwin@dellstation:$ /lib/ld-linux.so.2 --list /bin/mv
        linux-gate.so.1 =>  (0xffffe000)
        libacl.so.1 => /lib/libacl.so.1 (0xb7f27000)
        libselinux.so.1 => /lib/libselinux.so.1 (0xb7f12000)
        libc.so.6 => /lib/libc.so.6 (0xb7dcf000)
        libattr.so.1 => /lib/libattr.so.1 (0xb7dca000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7dc6000)
        libsepol.so.1 => /lib/libsepol.so.1 (0xb7d86000)
        /lib/ld-linux.so.2 (0x80000000)

cherwin@dellstation:$ /lib/ld-linux.so.2 --list /usr/sbin/chroot
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7e2f000)
        /lib/ld-linux.so.2 (0x80000000)

Hier zie je dat er van dezelfde libs gebruikt word gemaakt. In andere woorden, als chroot zou werken dan had hij geen probleem want dan doet mv het dus ook. :+

[ Voor 6% gewijzigd door cherwin op 18-03-2008 04:34 ]

Tell me your problem, not the solution you think I should build for you.


  • laurencevde
  • Registratie: November 2001
  • Laatst online: 02-10-2025
Een mogelijkheid om iets dergelijks volgende keer wat makkelijker op te kunnen lossen, is om busybox te installeren (natuurlijk wel statisch gecompileerd: bb). Dat is een "multi-call binary", die minimale versies van de meeste unix-tools bevat. Het wordt meestal in embedded apparaatjes gebruikt, maar hier is het ook voor geschikt.

Have a taste of freedom. It is sometimes a bitter pill. To me though, this is the sweetness of the GPL


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Ik heb nog een probleem met het terug plaatsen van spullen uit de orgineele /boot directory.

De boot directory bestaat reeds in de root. Maar ik mag er geen spullen in copieren, en mag hem ook niet verwijderen om een nieuwe aan te maken. De error die ik krijg bij het verwijderen is:
[root@SRV-VM01 /]# rmdir /boot
rmdir: `/boot': Device or resource busy


Hoe kan ik mijn orginiele /boot bestanden terug krijgen in de /boot directory?

Verwijderd

dat je hem niet kunt verwijderen komt lijkt me omdat het een aparte partitie is. Dat je er geen dingen in kunt kopieeren is misschien omdat hij gemount is als read only? kijk eens in je fstab.

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Verwijderd schreef op donderdag 31 mei 2007 @ 13:16:
dat je hem niet kunt verwijderen komt lijkt me omdat het een aparte partitie is. Dat je er geen dingen in kunt kopieeren is misschien omdat hij gemount is als read only? kijk eens in je fstab.
Mijn fstab ziet er als volgt uit:
UUID=8a78f23e-1d44-4bb4-be9a-d57401d3ee6f /                       ext3    defaults        1 1
UUID=aab56fd5-2dd8-4237-8112-acfc12d3a712 /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /proc                   proc    defaults        0 0
none                    /dev/shm                tmpfs   defaults        0 0
UUID=100ac4ef-474d-4a8a-9f21-1cd1cb484cb5 /var/log                ext3    defaults        1 2
UUID=18e1223a-af06-472f-9369-02b64a04ecbf swap                    swap    defaults        0 0
/dev/cdrom              /mnt/cdrom              udf,iso9660 noauto,owner,kudzu,ro 0 0


Ik zie hier een lijn in staan over de /boot mount. Maar ik ken te min linux om hier wijs uit te worden.

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Het lijkt erop dat de /boot wel READ/WRITE is.

/dev/cciss/c0d0p1 on /boot type ext3 (rw)


Maar ik heb het probleem gevonden. Ik wilde de directory /vmimages/boot in zijn geheel terug zetten in de root. Daarmee zou de directory /boot uit /vmimages over de mounted /boot heen worden gezet. Dat kan natuurlijk niet. Nu heb ik de inhoud van /vmimages/boot overgezet naar /boot . Dat gaat wel.
Pagina: 1