Takas alanı nasıl arttırılır?


127

Varsayılan olarak, Ubuntu'da 250 MB'lık takas alanına sahibim ve daha büyük bir boyuta genişletmek istiyorum. 800 MB'a ihtiyacım var, bu da mevcut takas sınırını aşmadan birkaç uygulamayı açmak için yeterli olacağını düşünüyorum. Umarım biri bana yardım edebilir.


2
Lütfen Gparted'i açın ve burada gördüklerinizin ekran görüntüsünü gönderin.
Aaron Hill

Takas bölümünüz bitişik ayrılmamış alana genişletilebilirse, o zaman kullanın gparted. Eğer böyle bir alan mevcut değilse, belki de aktif (önyüklenmiş) bölümünüz, değiştirilemeyen alanın tamamını kullanıyorsa, gpartedayrılmamış alan oluşturmak için aktif bölümün boyutunu azaltmanıza izin vermez. Bu durumda daha büyük bir takas alanı oluşturmak için Ubuntu'yu yeniden kurabilirsiniz.
H2ONaCl

Yanıtlar:


171

Her zaman takas dosyası oluşturabilirsiniz

daha fazla takas alanı eklemek için. Bu, (her yönüyle) takas bölümü ile aynı değildir ancak kolay ve dinamik olacaktır.

Hoşunuza /media/fasthdd/swapfile.imggiden herhangi bir şeyi değiştirin , örneğin, aynı şekilde olabilir /swap.img. /media/fasthdd/swapfile.imgsadece örnek dosya adı, eğer bunu kullanıyorsanız, o zaman elbette /media/fasthdd/yeni takas dosyanız için yeterli boş alana sahip bir dizin olmalıdır .

Komutları çalıştırmak için terminal uygulamalarından birini kullanın. Tüm komutların kök ayrıcalıklarıyla çalıştırılması gerekir , bunu yapmak sudoiçin her komutun başına ekleyebilir veya sudo bashkomutları çalıştırmadan önce çalıştırabilirsiniz.

1. Boş dosya oluşturun:
Bu dosya sanal bellek içeriğini içerdiğinden, dosyayı ihtiyaçlarınız için yeterince büyük hale getirir. Bu, sisteminiz için + 1Gb takas alanı anlamına gelen 1Gb dosyası oluşturur:

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

3Gb dosyası yapmak istiyorsanız, sayım değerini değiştirin count=3M. Daha man ddfazla bilgi için bkz .

2. Takas dosyasını
kaydedin : Aşağıdaki komut, yeni takas dosyanızın içinde "takas dosya sistemi" yapacaktır.

mkswap /media/fasthdd/swapfile.img

3. Açılışta açılış:
Bilgisayarı başlatırken yeni takas alanınızın etkinleştirildiğinden emin olmak için onu dosya sistemi yapılandırma dosyasına eklemelisiniz /etc/fstab. Dosya sonuna ekleyin; bu, herhangi bir dosyaya erişebilmemiz için, diğer dosya sistemlerinin ( takas dosyası içeren en az birinin ) okuma-yazma modunda monte edilmesi gerektiği için önerilir .

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. Etkinleştir:
Aşağıdaki komutu kullanarak bilgisayarınızı yeniden başlatabilir veya yeni takas dosyasını elle etkinleştirebilirsiniz:

swapon /media/fasthdd/swapfile.img


Her şey iyi giderse

Daha fazla takas alanının kullanım için uygun olduğunu görmelisiniz. Yeni takasınızı kontrol etmek ve aktif olduğunu onaylamak için aşağıdaki komutları kullanabilirsiniz:

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB

5
Düzenlemek /etc/fstabiçin bunu komut satırında deneyin:sudo gedit /etc/fstab
Ben

Bu bana çok yardımcı oldu, çok teşekkür ederim efendim.
Breeze

Yeni oluşturulan takas dosyasının nasıl devre dışı bırakılacağı?
Breeze

1
takas aldı!
Breeze

2
"cat / proc / swaps" yerine durumu görmek için "swapon -s" komutunu kullanın. daha sonra "free" komutu ayrıca takas kullanım bilgisini verir.
Paul M,

40

Takas bölümünün boyutunu artırmak için GUI yöntemi

Takas boyutunu arttırmanın bir başka yolu da GParted partition Editor'ü kullanmaktır . Kısacası, takas bölümünü yeniden boyutlandırın, ardından sağ tıklayın ve "Swapon" u seçin.

Gparted-live-disk veya bir Ubuntu live disk önyüklemesi daha kolaydır (böylece tüm /dev/sdabölümlerin bağlantısı kaldırılır). Ubuntu canlı diskini çalıştırıyorsanız, aşağıdaki komutları çalıştırarak gparted'ı yüklemeniz gerekir:

sudo apt-get update
sudo apt-get install gparted && sudo gparted

Takas bölümünün boyutunu yalnızca, takas bölümünden önce ya da sonra ayrılmamış bir alan varsa artırabilmelisiniz. Takas bölümünün altında veya üstünde ayrılmamış bir boşluk (takas bölümü ile eklemeye çalıştığımız alan) yoksa, bölümleri yeniden boyutlandırmamız ve ayrılmamış alanı almamız gerekir.

Durum 1 - takas bölümlemesinden önce veya sonra ayrılmamış alan

GParted bölümleri

Yukarıdaki ekran görüntüsünde, Linux takasından önce 11.4 GB ayrılmamış alan ve takas bölümünden sonra 12.8 GB alan vardı.

  • Yeniden boyutlandırmak için, takas bölümünü sağ tıklayın (/ / dev / sda9 burada) ve Yeniden Boyutlandır / Taşı seçeneğini tıklayın. Bunun gibi görünecek:

    görüntü tanımını buraya girin

  • Kaydırıcı okları sola veya sağa sürükleyin ve ardından Yeniden Boyutlandır / Taşı düğmesine tıklayın. Takas bölümünüz yeniden boyutlandırılacak.


Durum 2 - ayrılmamış alan bölümler arasında

görüntü tanımını buraya girin

Yukarıdaki ekran görüntüsünde, takas bölümüne eklemek istediğimiz ayrılmamış alan dev/sda7ve arasındaydı /dev/sda8.

  • / Dev / sda8 bölümüne sağ tıklayın ve Yeniden Boyutlandır / Taşı seçeneğine tıklayın.

    görüntü tanımını buraya girin

  • tıklayın ve sürgüyü aşırı sola hareket ettirin, böylece /dev/sda8bölümün hemen üzerindeki ayrılmamış alan aşağıya /dev/sda8inecektir. Bundan sonra Yeniden Boyutlandır / Taşı düğmesine tıklayın.

  • Ve şimdi ayrılmamış alan, Durum 1'deki gibi takas bölümünün hemen üzerindeydi. Şimdi Durum 1'i takip edin.


Durum 3 - Ayrılmamış alan Genişletilmiş bölüm dışında bulunuyorsa)

görüntü tanımını buraya girin

Uzatılmış bölümün hemen altında 18 GB'lik ayrılmamış bir boşluğum vardı .

  • Genişletilmiş bölüme sağ tıklayın ve Yeniden Boyutlandır / Taşı seçeneğini seçin , aşağıdaki ekran görüntüsü gibi olacaktır.

    görüntü tanımını buraya girin

  • Oku tıklayıp aşırı sağa sürükleyin ve Yeniden Boyutlandır / Taşı seçeneğine tıklayın , böylece 18 GB'lik ayrılmamış alan, genişletilmiş bölümün dibinde yer alır. GB, bununla birleşerek genişletilmiş bölümün dibinde ayrılmamış bir alan (18.34 + 14.80 GB) oluşturur.

  • Şimdi, takas bölümünün hemen altında ayrılmamış bir alan vardı, bu, Durum 1 gibi olacak , ardından durum 1'i takip edecek.

NOT: Yukarıdaki işlemleri yapmadan önce tüm önemli verilerinizi yedeklemeyi unutmayın.


2
GUI araçları için harika bir rehber, olduğu gibi ++ hak ediyor. Ancak belki de bölüm düzenlemeyle ilgili olası riskler hakkında bazı uyarılar olmalıdır. Basit MBR yedekleme kılavuzu veya bu kılavuza bağlantı çok iyi olabilir , hata olasılığı düşük olabilir ancak maliyetler yüksek olabilir + MBR yedeklemeleri çok fazla zaman veya alan tüketmeyecek ve doğru yapıldığında çok fazla çalışma, alan ve zaman kazandırabilir .
Sampo Sarrala

2
Takas etmeyi unutmayın, takas bölümünü sağ tıklayın bir takas
user3752281

29

fallocateDosyayı 0 ile doldurmaya gerek kalmadan takas dosyanız için yer ayırmak istiyorsanız da kullanabilirsiniz dd.

Sayfadan man:

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

Zaten bir swaptanımınız varsa, kaldırabilir veya tutabilirsiniz; * nix'iniz bunu yönetir (bir swaponöncelik tanımlayarak daha da iyi ). Takas alanınızı farklı cihazlar arasında, sürücüde (hızlarına veya diğer özel gereksinimlere göre) yaymak istemeniz durumunda bu yararlı olabilir, bkz . StackExchange'te birden fazla takas dosyasının amacı nedir ?

fallocateİkinci bir takas dosyası eklemek için basit kullanım

Değişim durumunu kontrol edin:

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

4G takas dosyası oluşturun

Bir takas dosyası oluşturmanın ve etkinleştirmenin standart yolu.

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

Değişiminizi kalıcı kılın

/etc/fstabDosyanıza bir sonraki satırda takas işlemi başlatılacak şekilde bir satır ekleyin (burada yeni oluşturulan takas alanının önceliğini de güncelledik ve eski takas dosyasının önceliğini de güncelleriz).

/ Etc / fstab dosyanızda prev swap önceliğinin şimdi 10 olduğuna dikkat edin.

/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

Yeniden başlattıktan sonra takas durumunu kontrol edin:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

Takas alanından birini çıkarın (örneğin orijinal 256 Mb)

Düzenle /etc/fstab

Kaldırmak istediğiniz takas ile ilgili çizgiyi kaldırın.

Bu değişikliği sil

Takas dosyasını silin ve kaldırın.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

Kaynaklar:


2
1-up fallocate, ddsizin fs destekliyorsa daha çok daha iyi . Bu tek gömlekler hala okumayı zor hissediyor, eğer gerçek komutlara bölünürlerse çalışmak daha kolay olabilir mi?
Sampo Sarrala

2
Bu mükemmel bir cevap örneği, anlaşılması çok basit, uygulaması çok basit.
Ubuntu

7

Benim durumumda zaten 1GB olduğunu düşündüğüm bir takas dosyam vardı ama daha yakından baktığımda sadece 256 MB büyüktü ve raylarımın varlıklarını önceden derlerken sunucuda bellek kalıyordu.

Errno::ENOMEM: Cannot allocate memory - nodejs

Takas dosyamı burada tarif edildiği gibi oluşturdum: https://stackoverflow.com/a/34885004/784318

Şimdi boş bir dosya oluşturan satır /swapfileşöyledir:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Şimdi takas dosyasını yeniden boyutlandırmak için şu basit adımları uyguladım:

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the `/swapfile`
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

Dosya oluşturuldu (536870912/1024/1024 = 512 MB):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

free -mKomutu kullanarak , dosyanın şimdi beklendiği gibi 512 MB olduğunu görebiliyordum:


Tek bir dosyayı silmek için rm komutuyla tehlikeli -r bayrağı kullanmamalısınız. rm -f fazlasıyla yeterli olmalıdır.
Sampo Sarrala

1
@SampoSarrala Başınız için teşekkürler, senaryoyu buna göre değiştirdim.
Besi

@Besi Teşekkürler! Bu tam olarak Ubuntu 18.04 LTS sistemimdeki takas dosya boyutunu artırmak için ihtiyacım olan şeydi. Tam olarak senin yazdığın gibi çalıştı. Mükemmel yardım !!!
B-radikal

Bu çözümü seviyorum çünkü komut satırı, yeniden bölümlendirme gerektirmiyor ve bir swap dosyası zaten varsa ne yapılacağını açıklıyor.
cxrodgers

3

takas dosyası nasıl eklenir

  1. creat .img dosyası

    sudo dd = = / dev / sıfır = / swap.img bs = İM sayısı = 1000

not !: bs = 1M sayısı = 1000 ==> 1GB

(bs * count = megabayt olarak boyut)

diğer örnek:

sudo dd = = / dev / sıfır = / swap.img bs = 10M sayısı = 100

  1. biçim .img dosya

    sudo mkswap /swap.img

  2. takas dosyasını etkinleştir

    sudo takas /swap.img

  3. fstab'a takas dosyası ekle

Bu satırı fstab'ınıza ekleyin (/ etc / fstab)

/swap.img   none            swap    sw              0       0

Genellikle takas etiketini ayarladım, örneğin "mkswap -L SWAP2".
Paul M,

Not: Bu Sampo Sarriadünyanın tarafından kabul / en upvoted cevap olarak, ama daha az bağlam ve takas img / medya / fasthdd yerine köküne doğrudan eklenen aynı cevabı
çelik

0

8GB’de Takas Boyutlandır

# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo swapoff -a

# Create an empty swapfile
# Note that "1G" is basically just the unit and count is an integer.
# Together, they define the size. In this case 8GB.
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

sudo mkswap /swapfile  # Set up a Linux swap area
sudo swapon /swapfile  # Turn the swap on

İşe yarayıp yaramadığını kontrol et

grep Swap /proc/meminfo
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.