Hệ thống không gắn phân vùng trao đổi


12

Mặc dù phân vùng trao đổi tồn tại và được đặt để tải vào fstab, nó vẫn không được gắn kết.

fdisk trả về cái này cho phân vùng trao đổi:

file system: /dev/sda5
      start: 1
        end: 244
     blocks: 1951744
         id: 82
     system: Linux swap / Solaris

và trong tôi fstabnó nói

file system: /dev/sda5
mount point: none
       type: swap
    options: sw
       dump: 0
       pass: 0

và tôi có thể tải nó tốt với swapon /dev/sda5nhưng nó sẽ không tải khi khởi động.

Có nhiều thông tin mà tôi có thể cung cấp để giúp khắc phục sự cố không? Tôi không biết những thông tin khác có thể hữu ích


Theo yêu cầu, fstabtập tin đầy đủ :

# <file system> <mount point>   <type>  <options>            <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid  0       0
/dev/sda6       /               ext4    errors=remount-ro    0       1
/dev/sda5       none            swap    sw                   0       0
/dev/sr1        none            udf     rw,noauto            0       0

Tôi đã xem nhật ký hệ thống và tôi thấy điều này, không chắc nó có nghĩa gì hoặc nếu nó bình thường nhưng:

Apr 29 17:57:24 caelan-ubuntu os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/sda5
Apr 29 17:57:24 caelan-ubuntu 50mounted-tests: debug: /dev/sda5 is a swap partition; skipping

đầu ra của mountall

mountall: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
mountall: Connection is closed

đầu ra của mountall -v

http://pastie.org/private/ras9mc7mf66yudnjoem4w

swap finished
...
local 4/4 remote 0/0 virtual 12/12 swap 0/0

không chắc chắn, vẫn không tải hoán đổi ... vẫn có thể được thêm vào dòng lệnh và phân vùng windows của tôi đang được gắn trên boot và đó cũng là trong fstab.


Bạn có phiền đăng lên nội dung của / etc / fstab không?
boehj

@boehj: xong ...
caesay

Chúc mừng. Không có gì nhảy ra khỏi tôi ở đây. Có vẻ kỳ quặc. Điều duy nhất tôi có thể nghĩ đến là, khi bạn đang sử dụng các phân vùng mở rộng, / sẽ xuất hiện đầu tiên tức là / dev / sda5 và trao đổi dưới dạng / dev / sda6. Điều này chỉ là nắm bắt trong không khí mỏng tuy nhiên. Tôi quan tâm để xem làm thế nào điều này sẽ được giải quyết. Có lẽ bạn có thể sử dụng UUID thay cho / dev / sdX? Để tìm những giá trị này làm sudo blkid.
boehj

@boehj: không có xúc xắc ... vẫn không được tải.
caesay

@ Mẹ - Xin lỗi tôi không thể giúp bạn thân. Tôi chắc chắn ai đó ở đây sẽ có thể mặc dù. Chúc may mắn với điều đó. :)
boehj

Câu trả lời:


8

Điều này sẽ nghe có vẻ ngu ngốc, nhưng hãy thử nó: sắp xếp lại /etc/fstabđể đặt phân vùng trao đổi cuối cùng.

Có vẻ như nó mountall -vvô hại khi chạy với tư cách là người dùng NON-root và đầu ra của nó có thể được sử dụng để chẩn đoán tại sao mountall không hoạt động ngay khi khởi động. Dòng đầu ra cuối cùng của bạn từ mountall -vbao gồm đầu mối quan trọng:

local 4/4 remote 0/0 virtual 12/12 swap 0/0

Nói cách khác, 0 ổ đĩa trao đổi được gắn kết, 0 ổ đĩa trao đổi được tìm thấy trong / etc / fstab.

Bây giờ tại sao mountall không tìm thấy ổ đĩa trao đổi của bạn được liệt kê trong / etc / fstab? Câu hỏi hay. Đây có lẽ là một lỗi chống lại mountall. Để chẩn đoán nó, tôi đã sao chép / etc / fstab của bạn và chạy mountall -vvới tư cách là người dùng không root. Bằng cách chỉnh sửa / etc / fstab một cách ngẫu nhiên và tiếp tục kiểm tra mountall -v, tôi đã tìm ra cách thay đổi "hoán đổi 0/0" được báo cáo của mountall. Chỉ cần sắp xếp lại các dòng của / etc / fstab là đủ để thay đổi thành "hoán đổi 0/1", nói cách khác, 1 ổ đĩa trao đổi được tìm thấy trong / etc / fstab. Với điều đó, nó có thể là đủ để khởi động đúng cách. Nếu không, xin vui lòng gửi kết quả mới của mountall -v.


2
Tôi nộp một lỗi trên Launchpad: bugs.launchpad.net/ubuntu/+source/mountall/+bug/839118
bgvaughan

8

Cảm ơn câu hỏi của bạn. Khi tôi đang xem xét, tôi phát hiện ra rằng hệ thống của tôi có vấn đề tương tự như của bạn sau khi nâng cấp lên Natty, ngày hôm qua. Tôi tin rằng vấn đề là UUID của phân vùng trao đổi đã thay đổi trong quá trình nâng cấp. Đây là cách tôi sửa nó.

  1. Chạy đi sudo blkid. Điều này sẽ hiển thị UUID hiện tại của tất cả các phân vùng trên đĩa. Tôi nghi ngờ bạn sẽ thấy rằng UUID của phân vùng trao đổi của bạn bây giờ khác với giá trị trong / etc / fstab.

  2. Nếu khác, hãy chạy một số trình soạn thảo văn bản trong sudo để chỉnh sửa / etc / fstab. Thay thế giá trị của UUID bằng giá trị thực tế hiện tại như được hiển thị bằng blkidlệnh ở trên. Không bao gồm các dấu ngoặc kép.

  3. Lưu tệp và khởi động lại hệ thống của bạn. Chạy free -mđể đảm bảo thay đổi đã khắc phục sự cố:

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:          1001        604        396          0        123        199
    -/+ buffers/cache:        281        719
    Swap:         1953          0       1953
    

tôi đã không sử dụng UUID, tôi đã sử dụng / dev / sda5 như tôi đã đề cập trong câu hỏi của mình. Điều đó sẽ không ảnh hưởng đến tôi?
caesay

Đồng ý. Vì vậy, / etc / fstab của bạn cũng không sử dụng UUID?
Tim

không .. nó không hoạt động. có hoặc không có uuid's
caesay

1
Làm việc như quyến rũ!
ShuaibKunji

1

Của tôi /etc/fstab (Debian) có nội dung như sau:

UUID=7b533ab9-cb87-4a30-a4d8-689788f21985 none  swap sw 0 0

Bạn nên có dòng đó dựa trên những gì bạn đã nói với chúng tôi về cấu hình của bạn:

/dev/sda5 none swap sw 0 0

Tôi tự hỏi tại sao là người mới bắt đầu trong Linux, bạn lại tự hỏi về điều này. RAM là giá rẻ những ngày này. Tôi đã có 4 GB và phát triển Java (ví dụ IntelliJ sử dụng rất nhiều RAM) nhưng tôi không bao giờ hết.

Và tôi phải nói rằng tôi rất ngạc nhiên khi bạn gặp phải loại vấn đề này. Bạn đã không chạy Trình cài đặt Ubuntu bằng các tùy chọn mặc định?

Hoặc có thể bạn đang gặp phải tất cả những vấn đề này do khởi động kép (Win / Lin)?


Nó có dòng đó, tôi không có quá nhiều ram, và tôi đang khởi động kép nhưng nó không phải là vấn đề vì các cửa sổ của tôi không chạm vào phân vùng trao đổi của tôi và tôi có thể tải nó tốt với hoán đổi.
caesay

1

Tôi không có câu trả lời nhanh nào, nhưng tôi chọc ngoáy và tìm thấy một số điều bạn có thể kiểm tra để cố gắng thu hẹp vấn đề:

  • / etc / fstab (5) nên liệt kê phân vùng trao đổi (bạn có vẻ ổn)
  • /etc/init/mountall.conf nên bao gồm dòng emits all-swaps
  • nếu bạn chạy mountallnhư người dùng không phải root, câu trả lời của nó sẽ bao gồmswapon: /dev/sda5: open failed: Permission denied
  • dmesg | less nên bao gồm một cái gì đó giống như những gì tôi có:

[2.272092] sda: sda1 sda2 sda3

[2.272924] sd 1: 0: 0: 0: [sda] Đĩa SCSI đính kèm

... (Nhiều dòng hơn về việc gắn sda1, sda2) ...

[20,298550] Thêm 10239996k trao đổi trên / dev / sda3. Ưu tiên: -1 mức độ: 1 trên: 10239996k

  • free nên báo cáo một cái gì đó như Swap: 10239996 0 10239996

Tôi không thể tìm thấy bất kỳ đầu ra nào trong dmesg về các ổ đĩa .. mountall trả về một lỗi và mountall.conf có dòng đó.
caesay

Nếu mountall không bao giờ cố gắng chạy hoán đổi, đó dường như là vấn đề của bạn. Đầu ra dài dòng là mountall -vgì?
krubo

đã thêm nó vào câu hỏi @krubo
caesay

xem nơi nào mountall -vtrao đổi 0/0? Đó là một manh mối hoàn hảo. Xem câu trả lời mới của tôi.
krubo

1

Tôi đã gặp vấn đề tương tự trên Ubuntu 12.04 (Chính xác), nhưng tôi /etc/fstabđã chính xác. Nó chỉ ra rằng có một cái gì đó bị hỏng về định dạng của phân vùng trao đổi của tôi đã ngăn chặn blkidmountallphát hiện phân vùng trao đổi.

Chi tiết:

  • Phân vùng trao đổi của tôi là /dev/mapper/foo-swap_1- một khối logic LVM trên phân vùng được mã hóa (LUKS).
  • Phân vùng trao đổi sẽ không bao giờ được kích hoạt khi khởi động.
  • Chạy thủ swapon -acông làm việc.
  • lsblk hiển thị phân vùng trao đổi
  • blkid KHÔNG hiển thị phân vùng trao đổi
  • blkid -p /dev/mapper/foo-swap_1 in thông báo sau:

    /dev/mapper/foo-swap_1: ambivalent result (probably more filesystems on the device, use wipefs(8) to see more details)
    
  • wipefs -n /dev/mapper/foo-swap_1 cho thấy HAI chữ ký hệ thống tập tin khác nhau!

Việc gỡ bỏ cả chữ ký ( wipefs -a) và định dạng lại hoán đổi ( mkswap) đã khắc phục sự cố cho tôi.

Đây là một kịch bản tự động sửa lỗi:

#!/bin/sh

# helper functions
log() { printf %s\\n "$*"; }
error() { log "ERROR: $*" >&2; }
fatal() { error "$*"; exit 1; }
try() { "$@" || fatal "'$*' failed"; }

# path to the swap partition
SWAP=/dev/mapper/foo-swap_1

# remember the UUID of the swap partition
UUID=$(try sed -e 's/RESUME=UUID=//' /etc/initramfs-tools/conf.d/resume) || exit 1
[ -n "${UUID}" ] || fatal "couldn't read UUID"

# delete filesystem/raid signatures from the swap partition
try wipefs -a "${SWAP}"

# format the swap partition
try mkswap -f -U "${UUID}" "${SWAP}"

1

Sau khi nâng cấp lên 12.04, một số dị thường nhỏ đã xảy ra, không có vấn đề gì. Tôi đã không biết phân vùng trao đổi của mình không hoạt động cho đến khi tôi cố gắng Gimp một jpg 14 megapixel từ Olympus e330 của tôi. Rất tiếc.

Diễn đàn giải cứu. Manh mối:

blkid trình diễn

/dev/sdb6: UUID="3e0550cf-4a55-4aa8-80fa-24103c1b25a7" TYPE="swap" 

nhưng nó không hoạt động theo System Monitor, mmm'kay.

UUID hoàn toàn đúng nhưng không đi ... không biết làm thế nào tôi nhận được lệnh này:

# blkid -p /dev/mapper/foo-swap_1
error: /dev/mapper/foo-swap_1: No such file or directory

Trình quản lý tệp cho tôi thấy một biểu tượng 0 byte, kiểm soát tên tệp, - vậy cái gì được cho là được viết ở đó? Bằng cái gì?

$ sudo swapon --all --verbose yielded
swapon: cannot find the device for UUID=3e0550cf-4a55-4aa80fa-24103c1b25a7

Tôi đã chỉnh sửa tập tin / etc / fstab

/dev/sdb6   none    swap    sw  0   0

Khởi động lại và Giám sát hệ thống cho thấy nó hoạt động, yay.

OK, tôi phải đã ở đây và tìm thấy lệnh

blkid -p /dev/mapper/foo-swap_1

Vì vậy, nó là đầu mối cho một người thông minh hơn tôi. Hy vọng nó giúp.


0

Sau UUID:

# Turn off swap swapoff "${SWAP}"

Cuối cùng:

swapon "${SWAP}"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.