rm /*
çok az silmeli. Orada -r
yinelemeli 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 /lib64
64 bit sistemlerde bir sembolik bağlantı olabilir.
Sorun sadece /lib64 -> /lib
sembolik 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-linux
Dinamik 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, /lib64
symlink'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.
-r
argü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?