apa yang dimaksud dengan "Baca Tukar Swap gagal: Sukses"?


9

Saya mencoba menginstal Arch Linux (dari snapshot 2014-04-01). Saya telah membuat file swap dan mencobanya swapon, tetapi saya mendapat pesan kesalahan (?) Yang tidak saya mengerti.

Saya sudah dieksekusi

fallocate -l 512M /mnt/sda2/swapfile
chmod 600 /mnt/sda2/swapfile
swapon /mnt/sda2/swapfile

dan hasilnya

swapon: /mnt/sda2/swapfile: read swap header failed: Success

dan saya miliki :(di akhir baris perintah saya. Jadi apakah itu berhasil atau gagal? Apakah ini bukan cara mengatur file swap?

Jawaban:


18

Apakah ini bukan cara mengatur file swap?

Saya pikir Anda melewatkan langkah di antara chmoddan swapon:

mkswap /mnt/sda2/swapfile

Adapun kesalahan oksimoromik ...

swapon: / mnt / sda2 / swapfile: baca header swap gagal: Berhasil

Apa artinya ini secara harfiah adalah ada bug dalam swaponkode, tetapi belum tentu terkait dengan fungsi utamanya.

Fungsi pustaka C sering menggunakan errno , variabel global yang menyimpan kode kesalahan. Fungsi itu sendiri akan mengembalikan nilai yang mengindikasikan kesalahan terjadi (kesalahan apa pun), dan sifat yang tepat dari kesalahan itu akan disimpan errno. Idenya adalah bahwa jika Anda mendapatkan indikasi kesalahan, Anda kemudian dapat memeriksa nilai errnountuk melihat apa itu.

Ada juga strerror()fungsi perpustakaan yang akan mengambil nilai errno (mereka adalah bilangan bulat) dan mengembalikan string bahasa manusia yang berkaitan dengannya. Salah satunya adalah Success, yang sesuai dengan kode kesalahan 0 (yaitu, tidak ada kesalahan).

Jadi, ketika Anda melihat sesuatu seperti ini, itu menunjukkan kesalahan seperti:

  • Mendapatkan kesalahan, lalu memanggil fungsi lain (berhasil) yang me-reset errno ke 0 di belakang layar, lalu menggunakan errno untuk menentukan spesifikasi kesalahan yang Anda dapatkan sebelum Anda memanggil fungsi kedua.

Dan / atau

  • Melewati strerror()variabel yang seharusnya telah diberi nilai errno di beberapa titik (untuk mencegah kesalahan sebelumnya terjadi) tetapi tidak.

Anda mendapatkan dua upvotes jika saya bisa - mkswapdan errno.
Aaron D. Marasco
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.