Uzak sunucuda yanlışlıkla yürütülmüş sudo rm / *


11

Yanlışlıkla rm /*uzak bir Ubuntu Sunucusu'nda kök olarak oturum açtığımda yürüttüm ve hemen hemen tüm ikili dosyaları sildim ve şu anda dosyaları geri yüklemek için ssh veya ftp ile giriş yapamıyorum (ve en iyisini umuyoruz).

Bu karışıklığı bir şekilde düzeltmenin bir yolu var mı, yoksa veri merkezini çağırmalı ve bir format istemeli miyim?


2
Bunun fiziksel veya sanal bir sunucu olup olmadığını teyit edebilir misiniz? Ayrıca, -rargümanı rm, gösterdiğiniz komutla mı çalıştınız, yoksa gerçekten mi yaptınız. Barındırma sağlayıcınız, söz konusu makinenin dışındaki disk görüntülerine erişmek için herhangi bir yol sunuyor mu?
Caleb

Yanıtlar:


26

rm /*çok az silmeli. Orada -ryinelemeli olarak hiçbir şeyi silecek bir bayrak yoktur ve bunlar olmadan dizinler silinmez (ve dizinler silinmiş olsa bile, yalnızca boş olanlar silinebilir). Bu cevap, çalıştırmadığınız varsayımına dayanmaktadır rm -rf /*.

Sonuç olarak kök dosya sistemindeki tek dosyalar, çekirdek ve initrd'e (baktığım bir Ubuntu sisteminde olmasına rağmen, mevcut değil) veya /lib6464 bit sistemlerde bir sembolik bağlantı olabilir.

Sorun sadece /lib64 -> /libsembolik bağın silinmiş olması olabilir. Hemen hemen her program bu sembolik bağlantıya güveneceğinden, bu oldukça kötü:

$ ldd /bin/bash
...
    /lib64/ld-linux-x86-64.so.2 (0x00007f8946ab7000)

ld-linuxDinamik yükleyici budur ve kullanılamıyorsa, herhangi bir dinamik yürütülebilir dosyayı çalıştıramazsınız. Bu, giriş yapmayı son derece zorlaştıracaktır ve hiç giriş yapamayabilirsiniz.

Bir kurtarıcı olabilir busybox. Kontrol etmek için çalıştırın:

$ ldd /bin/busybox
    not a dynamic executable

Bu durumda, meşgul kutusu çalıştırılabilir olmalıdır, ancak soru, onu nasıl çalıştırabileceğinizdir?

Önyükleme yükleyici istemine erişiminiz varsa init=/bin/static-sh, static-sh'nin bir sembol bağlantısı olduğu yerde önyükleme yapabilirsiniz busybox(var olup olmadığını kontrol edin /bin/static-sh- sistemimde yapar, ancak standart Ubuntu değildir.) Bu hata kullanılabilir olduğunu gösterir. .)

Bir kök kabuğunuz olduğunda, /lib64symlink'i yeniden oluşturabilirsiniz . Önce kök dosya sistemini okuma / yazma olarak yeniden takmanız gerekebilir. busybox, aşağıdaki gibi çalıştırabileceğiniz şu araçlara sahip olmalıdır:

# busybox mount -o remount,rw /
# busybox ln -s /lib /lib64
# /bin/bash
bash# 

Bash çalışırsa, sorun giderilmelidir.


18

Geçerli kurulumdan dosyaları kurtarmanız gerekiyorsa, ana makinenizden size yardım etmesini isteyin. Bir VM olduğunu varsayarsak, diskinizi görüntülemek, ana makinenizi sıfırdan yeniden yüklemek ve eski disk görüntüsünü yeni dosya sisteminize dökmek yaklaşık beş dakika sürer.

Hiçbir şeye ihtiyacınız yoksa, yeniden yüklemelerini sağlayın. İşleri zorlaştırdığınızda neredeyse her zaman daha hızlı seçenek.


2
Hemfikir olmak. Makul yetkin bir VM barındırma hizmeti ise, bunu yapabilmelidirler. Vidalama öncesi yedeklemeye sahip olduklarından emin olmak için onlarla mümkün olan en kısa sürede iletişime geçin.
Shadur

2

/ Lib64 / lib64 symlink dosyasını yeni sildiyseniz ve konsolu hala açtıysanız, şunları yapın:

/lib/ld-linux-x86-64.so.2 /bin/ln -s /lib /lib64

ve komutları normal şekilde tekrar çalıştırabilmeniz gerekir. Gerçek ld kitaplığınızın yolunu ayarlayın. İstediğiniz diğer komutları da tam ld kitaplık yolu ile önceden ayarlayarak çalıştırabilirsiniz.


1

Fiziksel sunucuya erişim olmadan yapabileceğiniz pek bir şey yoktur.


Öyleyse, bir biçim istemem gerekir mi, yoksa her şeyi kırmadan bu dosyaları geri yüklemenin bir yolu var mı?
Ant

Bunun sanal bir sunucu olma olasılığının yüksek olduğunu unutursunuz, bu durumda "fiziksel sunucu", daha üst düzey uzak araçlara erişim dışında bir anlam ifade etmez.
Caleb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.