CentOS cho rằng Disk đang bận, không thể mount hoặc fsck


25

Tôi là người dùng lâu năm và là người gửi câu hỏi lần đầu tiên. Tôi đã dành cả ngày để tìm kiếm giải pháp này và nhiều trang web khác để tìm giải pháp, nhưng tôi phải nhờ đến yêu cầu hỗ trợ để giải quyết tình huống của mình.

Lịch sử: Máy chủ HP Proliant, Centos 5.9 của chúng tôi đã tắt nguồn ngày hôm qua mà không có quy trình tắt máy phù hợp. Từ thời điểm đó trở đi, phân vùng / home đã ở trong trạng thái mà chúng ta không thể fsck nó, gắn kết nó hoặc vượt qua nó. umount nói rằng nó không được gắn kết, nhưng mount / fsck chỉ ra rằng nó đang bận hoặc đã được gắn kết. Điều này ban đầu khiến máy chủ không khởi động được. Cuối cùng chúng tôi đã xóa đĩa / phân vùng khỏi / etc / fstab để khởi động không bị lỗi.

# mount -t ext3 /dev/cciss/c0d0p1 /home
mount: /dev/cciss/c0d0p1 already mounted or /home busy

# fsck /dev/cciss/c0d0p1 
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
fsck.ext3: Device or resource busy while trying to open /dev/cciss/c0d0p1
Filesystem mounted or opened exclusively by another program?

Như bạn có thể thấy, đĩa không được gắn theo bất kỳ cách nào.

đầu ra df:

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d1p3    198381228  24920704 163220696  14% /
/dev/cciss/c0d1p2    267818128    191652 253802544   1% /logs
/dev/cciss/c0d1p1       194442     33575    150828  19% /boot
tmpfs                 49495044         0  49495044   0% /dev/shm

đầu ra gắn kết:

# mount
/dev/cciss/c0d1p3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/cciss/c0d1p2 on /logs type ext3 (rw)
/dev/cciss/c0d1p1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/ etc / fstab

# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/logs             /logs                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SW-cciss/c0d1p5   swap                    swap    defaults        0 0

/ etc / mtab

# cat /etc/mtab 
/dev/cciss/c0d1p3 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/cciss/c0d1p2 /logs ext3 rw 0 0
/dev/cciss/c0d1p1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

/ Proc / gắn kết

# cat /proc/mounts 
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/cciss/c0d1p2 /logs ext3 rw,data=ordered 0 0
/dev/cciss/c0d1p1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/etc/auto.misc /misc autofs rw,fd=7,pgrp=9694,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,fd=13,pgrp=9694,timeout=300,minproto=5,maxproto=5,indirect 0 0

lsof

# lsof /dev/cciss/c0d0p1 
#

bộ nhiệt áp

# fuser /dev/cciss/c0d0p1  
#

fdisk -l

# fdisk -l /dev/cciss/c0d0

Disk /dev/cciss/c0d0: 1800.2 GB, 1800280694784 bytes
255 heads, 63 sectors/track, 218871 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

           Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1   *           1      218871  1758081276   83  Linux

Theo các đề xuất khác trên web, chúng tôi đã sử dụng Thiết bị đầu cuối từ xa ILO3 để khởi động Centos LiveCD. Khi chúng tôi thực hiện điều này, chúng tôi có thể gắn kết / ngắt kết nối, fsck, phân vùng mà không có bất kỳ lỗi hoặc vấn đề. (tức là: đĩa tự nó là tốt).

Chúng tôi cũng đã sử dụng "gỡ lỗi" để thực hiện xóa inode cho Nhật ký inode <8>. fsck sau đó xây dựng lại tạp chí mà không có lỗi. Một lần nữa, chúng tôi có thể gắn / ngắt kết nối đĩa mà không gặp vấn đề gì khi khởi động vào LiveCD.

Khi chúng tôi chuyển trở lại phân vùng khởi động bình thường, chúng tôi trở lại cùng một vị trí, không thể gắn kết hoặc fsck do hệ điều hành tin rằng phân vùng đó đang bận.

Tôi đang tìm hiểu những gì khác trong Linux có thể chỉ ra rằng đĩa này đang được sử dụng. Những tiện ích khác có thể được sử dụng để tìm thấy điều này và xóa nó?

Bất kỳ trợ giúp nào cũng được đánh giá rất cao.


Thông tin bổ sung, theo yêu cầu :

lsof và fuser trên / home, cùng với hiển thị / nội dung nhà và quyền thư mục.

# lsof /home
# fuser /home
# ls -la /home
total 16
drwxr-xr-x  2 root root 4096 Mar 15  2013 .
drwxr-xr-x 27 root root 4096 Nov 19 08:31 ..
# ls -l / | grep home
drwxr-xr-x   2 root root  4096 Mar 15  2013 home
#

Việc gắn kết -o không thành công, vì phân vùng này chưa được gắn kết kể từ lần khởi động gần đây nhất. (Đây là một phân vùng hoạt động kể từ khi máy chủ được cài đặt và chỉ hiển thị vấn đề này sau khi khởi động lại cứng vào ngày hôm qua).

# mount -o remount -t ext3 /dev/cciss/c0d0p1 /home
mount: /home not mounted already, or bad option

Tôi có thể thêm lại phân vùng này vào / etc / fstab và khởi động lại nếu cần.


2013/11/19 11:12 sáng

đầu ra dmsetup:

# dmsetup table                
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

# dmsetup info
Name:              mpath0
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      1
Major, minor:      253, 0
Number of targets: 1
UUID: mpath-3600508b1001cb6e6453d25c4052abca5

Name:              mpath0p1
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        0
Event number:      0
Major, minor:      253, 1
Number of targets: 1
UUID: part1-mpath-3600508b1001cb6e6453d25c4052abca5

lsof -n

# lsof -n | grep /home
#

Giải pháp cuối cùng:

# multipath -ll
mpath0 (3600508b1001cb6e6453d25c4052abca5) dm-0 HP,LOGICAL VOLUME
[size=1.6T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=1][active]
 \_ #:#:#:# cciss!c0d0 104:0  [active][ready]

# multipath -F

# multipath -ll
#

# mount -t ext3 /dev/cciss/c0d0p1 /home
# cat /proc/mounts | grep home
/dev/cciss/c0d0p1 /home ext3 rw,data=ordered 0 0

5
Ví dụ tuyệt vời của một câu hỏi lần đầu tốt.
TheCleaner

2
Câu hỏi hay! Đó là một cú sút xa thực sự , nhưng bạn đã cân nhắc thử mount -o remount /homechưa? Ngoài ra, tôi sẽ kiểm tra để đảm bảo / home là thực sự trống rỗng khi hệ thống tập tin không được gắn kết (mà nên không phải là một vấn đề, nhưng ai mà biết được?) Và cái nhìn đối với bất kỳ thông điệp được áp dụng trong các bản ghi hệ thống, bao gồm dmesg.
một CVn

2
Bạn làm một lsof của đĩa. Bạn đã thử thực hiện một lsof / fuser của / home, trong trường hợp bất cứ điều gì đang chạy có ảnh hưởng đến điểm gắn kết?
Jenny D nói Phục hồi Monica

1
Nhân tiện, bạn có bất kỳ cơ hội xuất thư mục đó, ví dụ như qua nfs không? Nếu máy chủ nfs được khởi động trước khi gắn thư mục, nó có thể chặn bạn gắn nó.
Jenny D nói Phục hồi Monica

1
Đầu ra của là lsof -n | grep /homegì? AFAIK lsof / home tìm kiếm một quy trình với / nhà mở, nhưng không báo cáo việc sử dụng các thư mục con.
Zoredache

Câu trả lời:


16

Nó có thể được sử dụng bởi thiết bị lập bản đồ.

Kiểm tra bảng ánh xạ thiết bị của bạn bằng cách sử dụng dmsetup table. Nếu nó ở trong đó, xóa ánh xạ với dmsetup remove <name>.

Nếu không, tìm kiếm các lỗi dmesglà tốt.


# dmsetup table
mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 
mpath0p1: 0 3516162552 linear 253:0 63

Ah ah! multath đã yêu cầu đĩa. Bạn có thể nhìn thấy bằng cách chạy multipath -ll.

Chạy: multipath -Fđể xóa tất cả các bản đồ không sử dụng sau đó multipath -llsẽ không xuất ra gì.

Hoặc, chỉ sử dụng /dev/mapper/mpath0p1thay vì /dev/cciss/c0d0p1.


Tôi không chắc những gì đầu ra này nói với tôi. Điều này cho thấy đầu ra mà bạn đang mong đợi? [Trả lại xe ngựa của tôi dường như không hoạt động trong hộp bình luận này .. ]# dmsetup table mpath0: 0 3516173232 multipath 1 queue_if_no_path 0 1 1 round-robin 0 1 1 104:0 1000 mpath0p1: 0 3516162552 linear 253:0 63
TripSixes

1

Liên quan đến quá trình xử lý sự cố, khi thử lsof hoặc fuser, không chỉ kiểm tra phân vùng có liên quan - kiểm tra trực tiếp trên đĩa. Điều này nhanh chóng sẽ hướng bạn đến giải pháp chính xác:


Xấu:

fuser /dev/cciss/c0d0p1

Tốt

fuser /dev/cciss/c0d0

Xấu:

lsof /dev/c0d0p1

Tốt

lsof /dev/ | grep c0d0

1

Tôi vừa gặp phải điều này sau khi nhân bản SAN LUN hiện có sang một máy chủ mới. Giải pháp của tôi là:

  • Vào chế độ bảo trì
  • mount -o remount,rw /dev/sda1 (trong đó sda1 là bất cứ điều gì bạn gặp vấn đề)
  • Xóa / di chuyển /etc/blkid/blkid.tab

Máy chủ đã khởi động sau đó.


-2

Nói từ kinh nghiệm của riêng tôi. Kiểm tra fstab của bạn là tốt, để đảm bảo bạn đang cố gắn thiết bị làm âm lượng hợp lý của nó và không phải là bí danh bạn đã đưa ra hoặc đang sử dụng off / etc / Multipath / bindings.

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.