что означает «Ошибка чтения заголовка подкачки: успех»?


9

Я пытаюсь установить Arch Linux (из снимка 2014-04-01). Я сделал файл подкачки и попытался сделать swaponэто, но получил сообщение об ошибке (?), Которое я не понимаю.

Я выполнил

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

и вывод

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

и у меня :(в конце моей командной строки. Так получилось или не получилось? Разве это не как настроить файл подкачки?

Ответы:


18

Разве это не как настроить файл подкачки?

Я думаю , что вы пропустили шаг между ними chmodи swapon:

mkswap /mnt/sda2/swapfile

Что касается оксиморомной ошибки ...

swapon: / mnt / sda2 / swapfile: не удалось прочитать заголовок подкачки: успешно

Это буквально означает, что в swaponкоде есть ошибка , но не обязательно связанная с ее основным функционированием.

Функции библиотеки C часто используют errno , глобальную переменную, в которой хранится код ошибки. Сама функция вернет значение, указывающее, что произошла ошибка (любая ошибка), и точный характер этой ошибки будет сохранен в errno. Идея состоит в том, что если вы получаете указание на ошибку, вы можете проверить значение, errnoчтобы точно увидеть, что это такое.

Также есть strerror()библиотечная функция, которая примет значение errno (они являются целыми числами) и вернет относящуюся к нему строку человеческого языка. Одним из них является то Success, что соответствует коду ошибки 0 (т. Е. Нет ошибки).

Поэтому, когда вы видите что-то подобное, это указывает на такую ​​ошибку, как:

  • Получаем ошибку, затем вызываем другую функцию (успешно), которая сбрасывает errno до 0 за кулисами, затем используем errno, чтобы определить особенности ошибки, которую вы получили до вызова второй функции.

И / или

  • Передача strerror()переменной, которой в определенный момент должно было быть присвоено значение errno (чтобы предотвратить возникновение предыдущей ошибки), но это не так.

Вы получите два отзыва, если я смогу - mkswapи errno.
Аарон Д. Мараско
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.