Yanlışlıkla / etc adını değiştirdikten sonra, onu nasıl yeniden adlandırabilirim?


36

Ubuntu 18.04 kullanıyorum.

/etcKlasörü yeniden adlandırdım apache2. Bu benim en büyük hataydı.

Şimdi yeniden adlandıramıyorum çünkü kullanmam gerekiyor sudo, ancak denediğimde hatayı alıyorum

sudo: unknown uid 1000

Bu sorunu nasıl düzeltebilirim? Önyüklenecek canlı bir sistemim yok ve kurtarma modunda root terminali açılıyor, ancak kapanıyor diyerek kapanıyor cannot open password database.


17
Bir kurulum ortamından önyükleme yapın, "Try Ubuntu" yu seçin, kök dosya sisteminizi kurun /mnt, yeniden adlandırın, yeniden başlatın .
AlexP

Bir yükleme ortamı önyükleme nasıl yapılır?
Racoon

@Zanna, vardiya bana herhangi bir menü göstermedi. Belki başka bir düğme açabilir mi?
Racoon

@Zanna, Recovery menüsü -> root terminali açar, ancak şifre veritabanını açamaz ve kapanmaz diyor
Racoon

@Zanna, hayır, yapmadım :(
Racoon

Yanıtlar:


62

Bu gibi sorunları çözmenin kolay bir yolu, genellikle canlı bir sistemden önyükleme yapmak, kök bölümü takmak /mnt ve ardından dosyayı yeniden adlandırmaktır.

Canlı bir sisteminiz veya bunu yapma yönteminiz yoksa veya sisteme fiziksel olarak erişemiyorsanız, ancak GRUB menüsünü yeniden başlatıp alabilirsiniz, bir kök kabuğu almak ve yeniden adlandırmak için GRUB düzenleyicisini kullanabilirsiniz. dosya.

Yeniden başlatın veya kapatın, açın ve normal olarak açılışta GRUB menüsünü göremiyorsanız, GRUB menüsüne ulaşmak için Shiftveya düğmesine basın Esc.

İmleci Ubuntu için Gelişmiş Seçenekler seçeneğine getirin ve düğmesine basın enter, ardından eönyükleme seçeneklerini düzenlemek için düğmesine basın (yalnızca bir kez - buradaki değişiklikler kalıcı olmaz, bu nedenle daha sonra temizlememiz gerekmez).

Bunun gibi görünen bir ekran göreceksiniz 1 :

GRUB menü düzenleyicisinin ekran görüntüsü

İmleci, başlangıçta başlayan satıra götürün linuxve ardından imleci bu satırın sonuna veya orada çekirdek önyükleme parametreleri arasında herhangi bir yere taşıyın. Sistemin /etcyerinde önyükleme yapamayacağından doğru hatta olduğunuzdan ve buraya dikkatli bir şekilde yazdığınızdan emin olun .

Metni ekleyin init=/bin/bashve F10önyüklemek için tuşuna basın .

Bu sistem init olarak bir Bash kabuğu ile başlayacaktır. Bir kök kabuğu alacaksınız ve dosya sistemi salt okunur olarak bağlanacak. 2 Dosya sistemini yazılabilir yapmak için, komutu girin

mount -o remount,rw /

Şimdi yeniden adlandırabilirsiniz /etc(önce siz isteyebilirsiniz ls)

mv /apache2 /etc

Artık kök kabuğun kendisini normal init sistem 3 ile değiştirmesini sağlayarak önyüklemeyi başlatabilir veya normal buradan buradan tamamlayabilirsiniz :

exec systemd 

Bu prosedürü Ubuntu MATE 18.04'te test ettim.


1 GRUB editörünün VirtualBox'dan kaliteli bir ekran görüntüsü alması için Kulfy'ye çok teşekkürler !
2/etc Bu senaryoda PATH, config dosyalarından ayarlanamamasına rağmen , Bash otomatik olarak birini kurar .
3 Eğer exec systemd, sizin için çalışmıyor exec /sbin/inithile yapmak gerekir. Değilse, readlink -e /sbin/inithangi init programının çalıştırması gerektiğine giden yolu vermelisiniz, bu execdurumda tam yolunu kullanabilirsiniz. Bu şekilde devam edemiyorsanız, sadece girin reboot.


4
Ekran görüntüsü +1 :) dahil çok ayrıntılı
WinEunuuchs2Unix

3
@Kulfy çok teşekkür ederim! bu harika: DI yeterli RAM'e sahip olmadığım için VB kullanamıyor. Cevabımı geliştirmek için çok naziksiniz
Zanna

3
Ekran görüntüsünü çok büyük aldım: P ;-) ve ekran görüntüsü kredisi için teşekkürler :)
Kulfy

1
@Racoon Çok rica ederim, mutlu ettiğin için mutlu oldum :)
Zanna

Test etmeye çalışıyorum ama Ubuntu 18.04.Desktop'ta çalışmıyor. Talimatları takip ettim . Çalışmıyor. F10Sadece birkaç satır sonra belirir ve boş ekranda durur. Bir şey önerebilir misin?
Vijay

8

Canlı bir USB'niz varsa, önyükleme yapıp mevcut dosya sisteminizi bağlayabilmeniz ve ardından oradan yeniden adlandırmanız gerekir /etc. Burada ihtiyacınız gereken bir canlı USB oluşturmak için nasıl bir öğretici olduğunu.

Canlı USB'ye önyüklendikten sonra (bir Ubuntu 18.04 sürücüsü kullanıyorsanız), "Yüklemeden Ubuntu'yu dene" yi seçin; bu, esasen size kapanmadan sonra devam etmeyen bir Ubuntu kurulumunun tam bir örneğini verecektir. Önyüklendikten sonra birkaç seçeneğiniz vardır:

Komut Satırı Yolu

Bir terminal aç ve koş lsblk. Orijinal kurulumunuzun sürücüsü olacak birimi arayın ve hangi numaraya sahip olduğuna dikkat edin (/ dev / sd #)

Ardından, sürücü için bir mountpoint oluşturun ve sürücüyü birlikte mkdir -p /mnt/directorytakın sudo mount /dev/sd# /mnt/directory. Dizine gidin cd /mnt/directoryve şimdi kurulumunuzun kök dizininde olmalısınız, fakat şimdi çalışan bir sudokomutla. sudo mv apache2 etcvarsayımsal olarak çalışan bir işletim sisteminizi çalıştırın ve yeniden başlatın.

Grafiksel yol

Diskleri arayarak diskler yardımcı programını açın. Kurulum sürücünüze benzeyen birimi seçin ve bağlayın. Dosya yöneticisini açın ve takılan birimi seçin, /apache2klasörünüzü sağ tıklayın ve yeniden adlandırın /etc, sonra yeniden başlatın .


"Grafiksel Yol" çalışmıyor çünkü Rt'de "Yeniden Adlandır" seçeneği yok. tıklayın.
Vijay

1
@Vijay Muhtemelen dosya izinleri nedeniyle, dosya yöneticisini grafiksel olarak yapmak için root olarak açmanız gerekir. Bunu yapmak için komutu sudo nautilusterminalden çalıştırın . (Ubuntu, "nautilus" u, dosya yöneticisi olarak, Windows "explorer" ı kullandığı gibi kullanır.)
AJMansfield

2
Elbette @ AJMansfield, canlı bir sistem için önemli değil, ancak genel olarak root'un sudo -H nautilusconfig dosyalarının sahibi olmalarını önlemek için kullanmalı $HOME, potansiyel olarak sıradan bir kullanıcı olarak çalıştırılan programlar tarafından erişilemez hale getirmelerini sağlamalıyız. Muhtemelen bunun farkındasınızdır, fakat diğer okuyuculardan söz ediyorum.
Zanna

6
  1. Burada gösterildiği gibi Önyüklenebilir USB yapın .

  2. Burada gösterilen tuşa basarak USB'den önyükleyin .

  3. Dosya sistemi bölümünüzü çalıştırarak öğrenin gparted. Diyelim ki sdxy.

  4. Terminalde koş sudo mount /dev/sdxy /mnt

  5. Terminalde koş sudo mv /mnt/apache2 /mnt/etc

  6. İsim değişikliği için dosya sisteminizi / mnt içerisinde kontrol edin.

  7. Terminalde koş sudo reboot

  8. İstendiğinde USB'yi çıkarın ve enter tuşuna basın.


@Kulfy Denedim ama sudo olmadan çalışmıyor. Buraya bakınız .
Vijay

Bunun nedeni sda2'nin sudo ile monte edilmiş olmasıdır, bu nedenle yalnızca sudo eylemleri gerçekleştirebilir. Ancak, sürücüyü nautilus'a monte ederseniz (herhangi bir özel izin olmadan) sudo olmadan görevleri gerçekleştirebilirsiniz.
Kulfy

Ubuntu @ ubuntu: ~ $ mount / dev / sda2 / mnt mount: sadece root ubuntu @ ubuntu @ ubuntu: ~ $
Vijay

1
AFAIK mountprogramı çok katı ve her zaman kök olarak çalıştırılmalıdır; Bunun tek istisnası, dosya sisteminin içinde fstabve userseçeneğinin olduğu durumdur . Program udisksctl, normal kullanıcıların örneğin udisksctl mount -b /dev/sda1(uygun bir montaj noktası oluşturur) kullanarak cihazları monte etmelerini sağlar /media/$USER/. udisksctlCanlı bir sistemden kullanmayı denemedim , fakat canlı bir sistemde her zaman sudoşifresiz çalışabilen ayrıcalıklı bir kullanıcı olduğu için udisksctl, başka türlü kullanışlı olan yardımcı programlara gerek kalmıyor
Zanna
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.