Hareketli kök dizini yinelemeli olarak geri alma


14

Sunucu olarak kullanılan bir Ubuntu Masaüstüm var. Bu sabah yanlışlıkla tüm köklerimi../

 root@server:/tmp/UPS/up/upsilon# mv /* ../
 mv: impossibile spostare "/dev" in "../dev": Dispositivo o risorsa occupata
 mv: impossibile spostare "/proc" in "../proc": Dispositivo o risorsa occupata
 mv: impossibile spostare "/run" in "../run": Dispositivo o risorsa occupata
 mv: impossibile spostare "/sys" in "../sys": Dispositivo o risorsa occupata
 mv: impossibile spostare "/tmp" in una sottodirectory di sé stessa, "../tmp"
 root@server:/tmp/UPS/up/upsilon# ls
 -bash: /bin/ls: No such file or directory

Ssh ile uzaktan bağlandım. Artık erişemiyorum. Webmin'i de görüntüleyemiyorum.

Şimdi sistemi doğru şekilde yeniden başlatamıyorum? Ve sistem konsoluna fiziksel olarak erişmeli ve şu komutu yazmalıyım:

../bin/mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*}

sağ?

Kök dizinim nereye gitti ve nasıl geri alabilirim? Yukarıdaki komut işe yarayacak mı?


10
Vaov! Bu etkileyici bir hatadır! :(
Sparhawk

3
O sırada çalışma dizininin doğru olduğunu anladım /mı? Eğer öyleyse, denediğimde mv tempdir/ ../, mv: ‘tempdir/’ and ‘../tempdir’ are the same filehiçbir şey hareket etmeden anladım .
Sparhawk

Bir dahaki sefere root olarak giriş yapmayın. Ve yapacaksanız anahtarı mvekleyin -i.
Braiam

1
Katılmıyorum. Bazen dikkatsizce her komutun önüne 'sudo' koymayı öğrenmek yerine root olarak giriş yapmak istersiniz. Ancak root olarak giriş yaptığınızda dikkatli olun. Özellikle silme ve taşıma komutları ile. --- Yine de hatalar oluyor ve onlardan öğreniyoruz. @MaxDL: / partion dosyasını bir yedekten geri yükleyebilir misiniz? Yedekleriniz var mı? İşletim sistemini başlatmadan sunucu konsoluna erişmek için bir Dell DRAC, bir HP ILO veya başka bir uzaktan erişim aracı kullanabilir misiniz?
Hennes

Yanıtlar:


12

Kök dizini taşımadınız (yapamazsınız), neredeyse her şeyi bulunduğunuz yolun üst dizinine taşıdınız.

Bir şeyleri karmaşık hale getirmek için, mvbeklediğiniz gibi çalışmayacak şekilde taşındınız . Aşağıdakiler çalışmalıdır (bunu soracağınızdan beri yeniden başlatmadığınız sürece!) Son mv'nizi ateşlediğinizde hala aynı dizindeyseniz.

../bin/mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /

Bunlardan herhangi birine sahip değilseniz, onları komuttan çıkarmanız yeterlidir.

Erişiminiz yoksa (işler bu durumdayken yeni bir giriş yapamazsınız) dosya sistemini harici olarak (LiveCD gibi bir şey aracılığıyla ve dosya sistemini bağlayıp dosyaları taşımanız gerekir) Braiam'ın cevabı bu bölüme yardımcı olmalı.


Beni şaşırtan şey, root@server:/# lsmevcut dizinin bana önerdiği satırdı /. (Bu
yüzden

Üzgünüz, bu tam komut: root @ server: / tmp / UPS / up / upsilon # mv / * ../ Uzakta ssh olarak bağlandım. Artık erişemiyorum.
MaxDL

Sonra düzeltmek için komut/tmp/UPS/up/bin/mv /tmp/UPS/up/{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /
Sparhawk

10

Yeniden başlattıysanız veya oturumu kapattıysanız, sisteminizi düzeltmek için bir liveCD / USB ile önyükleme yapabilirsiniz. Nasıl Live sistemi oluşturacağınızı ve Ubuntu ile önyükleme yapacağınızı bildiğiniz bölümü atlayacağım (alternatif cd de çalışır, sadece bir kök kabuğa bırakın):

İlk önce sisteminizi bir yere monte etmelisiniz, bu yüzden:

mkdir /mnt/system
mount /dev/sda1 /mnt/system

Ben /dev/sda1senin kök olduğunu varsayıyorum . Eğer ayırdıysanız /binya da /usrtakmanız gerekiyorsa:

mount /dev/sda2 /mnt/system/usr

Şimdi, felaketten önceki dizine gelmelisiniz:

cd /mnt/system/tmp/UPS/up/upsilon

Şimdi Oli'nin verdiği emirle, blatancy ile kopyalayacağım:

mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /mnt/system/

Şimdi her şeyin yolunda olduğunu doğrulayın:

# ls /mnt/system/
bin boot etc home media mnt opt root sbin selinux usr var etc...

Sisteminizi yeniden başlatın ve gelecekte daha dikkatli olun.


1

Ben bu sorunu vardı, ben mv komut böyle çağırmak için gerekli bulundu:

/tmp/UPS/up/lib/ld-linux-x86-64.so.2 --library-path /tmp/UPS/up/lib/ /tmp/UPS/up/test/bin/mv /tmp/UPS/up/{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var} /

Umarım bu başkalarına yardımcı olur.

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.