Varolan başka bir bölüme nasıl taşınır / değiştirilir?


16

/ Var içeren ve çok küçük bir / bölüm var. Yeterli alana sahip başka bir bölümüm var.

İşte benim df:

File system          Size. Occ. Avai. %Ful. Monté sur
/dev/sda1             5,0G  4,5G  289M  95% /
tmpfs                 242M     0  242M   0% /lib/init/rw
udev                   10M  2,7M  7,4M  27% /dev
tmpfs                 242M     0  242M   0% /dev/shm
/dev/sda2              15G  406M   14G   3% /home

/ Var klasörünü sda1'den sda2'ye nasıl taşıyabilirim?

Yanıtlar:


19

Tek kullanıcı moduna geçin ve işlem yazma işleminin /vardurdurulduğundan emin olun . (Kontrol et lsof | grep /var)

  • mkdir -p /home/var
  • rsync -va /var /home/var
  • mv /var /var.old# işiniz /var.oldbittiğinde alanı kaldırabilirsiniz
  • mkdir -p /var
  • mount -o bind /home/var /var
  • /etc/fstabbağlantınızı kalıcı hale getirmek için güncelleyin .

/etc/fstab

 /home/var /var        none    bind

Thks! Tek kullanıcı moduna nasıl girebilirim? 'Var' klasörü / home'da kalacak mı?
Jérémie

Evet /home/var, sorunu bu şekilde çözerseniz her zaman bir dizin olurdu. Yeniden başlatma ve Önyükleme menüsünden tek kullanıcı modunu seçerek tek kullanıcı moduna geçmenin bir yolu.
Zoredache

Bunun her zaman iyi çalışıp çalışmayacağından emin değilim. Daha yeni bir sürümü (wheezy) kullanıyorsanız, / run dosya sistemine sahip olduğu için sorun yaşamazsınız. OTOH: önyükleme işleminin başlarında dosyalar bağlanmadan önce / var içinde açılabilir.
cstamas

1
@cstamas, Ayrı bir dosya sistemine sahip olmak / var desteklenir ve her zaman olmuştur. Ayrı olarak / var olmak, FHS ve resmi Debian belgelerinde iyi bir şey olarak bile önerilmektedir.
Zoredache

Tamam, bence haklısın. Bunu bağlama bağlarıyla yapmak benim için garipti.
cstamas

5

Ayrıca kullanabilirsin:

 mkdir /home/var
 <move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var>
 mv /var /var.old
 ln -s /home/var /var

Bu, fstab ve mount'larla uğraşmaktan çok daha kolay görünüyor.


1
Kimsenin bunu neden düşük oy kullanacağından emin değilim. Bu gayet iyi çalışır. Bir sym-link iyi çalışmalıdır. Başka şeyler için sadece bağlama bağları kullanıyorum, bu yüzden önce bunları düşünmeye eğilimliyim.
Zoredache

1
Buna eklemek için o kadar güvenli olmayabilir, ama aslında işe yarıyor. Son zamanlarda bunu bir makinede üretime almadan önce yaptım. Kullanımda olan veya çok fazla işlem yürüten bir makine ise dikkatli olmalıyım. Benim durumumda, sadece tomcat çalıştırmak anlamına gelen taze bir sunucuydu.
AJ Brown

1
Symlinking / var çalışıyor, ancak bunu yapmak yerine / etc / fstab içine bir girdi koymayı tercih ediyorum, hangi bölümü / birimi ne koyduğumu ve nedenini hatırlıyorum (yorum ekleyebilirsiniz). Bu şekilde, donanımımdaki bir şeyi değiştirmem gerekirse konfigürasyonda neleri değiştirmem gerektiği anlaşılabilir.
gerlos

1
Bunun nasıl çalışacağını göremiyorum. Çalışmasını istiyorum ama init use / var gibi temel şeyler değil mi?
Sue Spence

1

/varTek kullanıcılı moda geçmeden taşıma

Benim işveren barındırma şirketi tarafından bana karşılık bulunması yeni bir sanal sunucu üzerinde aldığımda, ekstra mantıksal hacimleri yarattı varve homehangi kök bölümü düzenli dizinleri olmuştu. Sanal sunucu sağlayıcısı, sunucuya tek kullanıcı modunda erişebildiğim KVM benzeri bir arayüz sağlamadığından, yukarıdaki yanıtlar kurulumum için geçerli değildi. Umarım bu cevap benzer bir durumdaki diğerleri için yararlıdır (LVM ayrıntılarını sakladım, ancak bunlar yeni dosya sisteminin mantıksal bir birimde mi yoksa disk bölümünde mi oluşturulduğu özellikle alakalı olmadığı için atlanabilir).

/varLVM ile yeni bir dosya sistemi oluşturma ve kullanma

Yeni varbirim için dosya sistemini oluşturun, bağlayın (geçici bir dizin kullanarak) ve dosyaları geçerli dosyadan /varyeni dosya sistemine kopyalayın . Dosyaları ile kopyalarken rsync, onun kullanmak -a, --archivezaman damgalarını, mülkiyet, modları vs ve korumak için seçenek -X, --xattrsböyle AppArmor'u ve SELinux kullandığı güvenlik etiket olarak genişletilmiş özelliklerini korumak için bir seçenek.

sudo lvcreate -L 60GB -n var VolGroup00
sudo mkfs.ext4 /dev/VolGroup00/var
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
sudo rsync -raX /var/ /var.new/

Dosya sistemi tablosunu güncelleme

/varAşağıdaki satırı ekleyerek yeni dosya sistemini yeni bir bağlama noktası olarak kullanılacak şekilde yapılandırın /etc/fstab. Belirli bir yeniden başlatma sayısından sonra 0dosya sisteminin otomatik olarak kontrol edilmemesi ( fsck) için geçiş numarası (son alan) olarak kullanıldığını unutmayın ( Tek kullanıcı modunda sunucuya oturum açma erişimim yok).

/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0

Tek kullanıcı moduna geçemediğim için bu yeni birimi kullanmak için bilgisayarı yeniden başlatın /var.

Kök dosya sisteminden disk alanını kurtarma

Makine yeniden başlatıldıktan sonra, geçici dizini temizlemek ve eski /vardosyaları kök dosya sisteminden kaldırmak için aşağıdaki adımları uygulayın :

  1. Geçici bağlama noktasını kaldırın:

    sudo rmdir /var.new
    
  2. /varKök dosya sistemindeki eski dizindeki dosyalara alternatif bir yol oluşturmak için yeni bir bağlama noktası oluşturun (şu anda /vardizine monte edilen yeni dosya sistemi tarafından “maskelenir” ):

    sudo mkdir /old-root
    sudo mount /dev/mapper/VolGroup00-root /old-root/
    sudo rm -rf /old-root/var/*
    sudo umount /old-root/
    sudo rmdir /old-root/
    
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.