co oznacza „Nie udało się odczytać nagłówka zamiany: sukces”?

9

Próbuję zainstalować Arch Linux (z migawki 2014-04-01). Zrobiłem plik wymiany i próbowałem swapongo, ale otrzymałem komunikat błędu (?), Którego nie rozumiem.

Straciłem

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

i wynik jest

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

i mam :(na końcu mojej linii poleceń. Czy to się udało, czy nie? Czy to nie jest sposób konfiguracji pliku wymiany?

Adam R. Gray
źródło

Odpowiedzi:

18

Czy to nie jest sposób konfiguracji pliku wymiany?

Myślę, że brakowało krok w między chmodi swapon:

mkswap /mnt/sda2/swapfile

Jeśli chodzi o błąd oksymoromiczny ...

swapon: / mnt / sda2 / swapfile: odczyt nagłówka wymiany nie powiódł się: sukces

To dosłownie oznacza, że ​​w swaponkodzie jest błąd , ale niekoniecznie związany z jego pierwotnym funkcjonowaniem.

Funkcje biblioteki C często wykorzystują errno , zmienną globalną, która przechowuje kod błędu. Sama funkcja zwróci wartość wskazującą na wystąpienie błędu (dowolny błąd), a dokładna natura tego błędu zostanie zapisana w errno. Chodzi o to, że jeśli pojawi się komunikat o błędzie, możesz następnie sprawdzić wartość, errnoaby zobaczyć dokładnie, co to jest.

Istnieje również strerror()funkcja biblioteczna, która pobierze wartość errno (są liczbami całkowitymi) i zwróci związany z nią ciąg języka ludzkiego. Jednym z nich jest Success, co odpowiada kodowi błędu 0 (tzn. Brak błędu).

Kiedy więc zobaczysz coś takiego, oznacza to błąd, taki jak:

  • Otrzymanie błędu, następnie wywołanie innej funkcji (z powodzeniem), która resetuje errno do 0 za sceną, a następnie użycie errno do określenia specyfiki błędu, który wystąpił przed wywołaniem drugiej funkcji.

I / lub

  • Przekazywanie strerror()zmiennej, która w pewnym momencie miała być przypisana wartości errno (aby zapobiec wystąpieniu poprzedniego błędu), ale tak się nie stało.
Złotowłosa
źródło
Otrzymasz dwa głosy poparcia, gdybym mógł - mkswapi errno.
Aaron D. Marasco