Swapon başarısız oldu: Linux sisteminde Btrfs dosya sistemine sahip geçersiz değişken


15

Btrfs dosya sistemine sahip bir Debian Squeeze sisteminde çalışan bu işlem dizisinin nesi yanlış?

$ dd if=/dev/zero of=swapfile2 bs=1024 count=524288
$ sudo mkswap swapfile2
$ sudo chown root:root swapfile2
$ sudo chmod 0600 swapfile2  
$ sudo swapon -v -f swapfile2
swapon on swapfile2
swapon: /home/mathieu/swapfile2: found swap signature: version 1, page-size 4, same byte order
swapon: /home/mathieu/swapfile2: pagesize=4096, swapsize=536870912, devsize=536870912
swapon: swapfile2: swapon failed: Invalid argument

Dosya sistemim:

$ mount
/dev/mapper/voxbox-root on / type btrfs (rw)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/mapper/voxbox-boot on /boot type ext2 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)

malat, sorunuzu yeniden açtım & amp; cevabını aşağıdaki gibi ekledi. Cevabınızı göndermek için çekinmeyin, benimkini sileceğim.
Sathyajith Bhat

Yanıtlar:


14

Bu hata raporu yol açar bu   tartışma

Bu nedenle, "Geçersiz argüman" "Dosya sisteminiz takas dosyasını desteklemiyor" olarak okunmalıdır.

gibi gönderildi tarafından malat


4
İyi yakaladın! btrfs dosya sistemi, takas dosyalarını destekleyemez çünkü dosya verilerini dolaştırır ve Linux takas kodu yalnızca takas dosyasının eşlemesini yalnızca bir kez alır. Buna izin verilirse, felaket ortaya çıkar - rastgele kullanılan dosya verileri bir kez kullanılan takas dosyasının bozulduğunu engeller.
David Schwartz

1
daha yeni bir takas sayfası, yeni bir püf noktası "Dosyayı bir geridönüş aygıtına eşlemek olası bir çözümdür". Henüz bunu denemedim.
malat

2

Yine de bir dosyayı değiştirmek istiyorsanız, sadece btrfs-swapon


Aynı çözüme ulaştım, ancak böyle bir yaklaşımın doğruluğu konusunda endişelerim var. Ör. dev dev ile bastonlarla yaratılmış delikler etrafında çalışabilirim truncate -s 4G swapfile_holes.img. Yani neden neden swapon Bir şeyi kontrol eder, takas dosyasının makul performans için bazı gereklilikleri yerine getirmesi gerektiğidir.
ony

1
Ve bir dakika önce kullanmaktan kaçınmaya karar verdim losetup haritalaması. Takas kullanmaya başladıktan sonra sistemim takıldı. losetup btrfs (önceden ayrılmış dosya ile). Belki bir şekilde tampon ve önbellekleri engelleyebilir. Yani sistem belleği boşaltmak istiyor ve bir şeyi değiştiriyor, ancak bu aynı boyutta önbelleğin artmasına neden oluyor. Emin olmasam da bundan kaçınırdım.
ony

0

Sathya'nın cevabı ölü bağlantılar içeriyor gibi görünüyor.

Bunun Btrfs SSS olduğunu buldum:

Btrfs, takas dosyalarını destekliyor mu?

Şu anda hayır. Sadece bir dosya NOCOW yapmak yardımcı olmuyor, dosya takas   destek btrfs'nin kasıtlı olarak yapmadığı bir işleve dayanır   Potansiyel bozulmalar nedeniyle uygulamak. Kullanılan takas uygulaması   btrfs'de bulunmayabilecek bazı varsayımlara dayanmak, blok gibi   btrfs farklı bir blok numarasına sahipken takas dosyasındaki sayılar   Birden fazla cihaz durumunda haritalama. Olabilecek yeni bir API var.   takasın btrfs'ye yönlendirilmesi için kullanılır; daha fazla ayrıntı için projeye göz atın   fikirler # Dosya desteğini değiştir.

Performansı düşük olsa da geçici bir takas dosyası takas etmektir.   bir döngü cihazı ile.

Kaynak: https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F


-2

Invalid argument Bir şeylerin argümanlarında yanlış olduğunu söylüyor. swapon Komut.

Her şeyden önce, okumak man swapon.

Deneyin sudo swapon swapfile2. Benim durumumda işe yarıyor.


3
Muhtemelen, man sayfasını okumadan -v ve -f bayrağını bulabileceğimi düşünüyor musunuz?
malat
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.