Tại sao một phân vùng sẽ được sử dụng bởi hệ thống nếu nó không được gắn kết?


12

Tôi đã chuyển hệ thống của mình từ btrfs sang ext4 sau khi gặp vấn đề về hiệu năng với máy ảo. Tôi có hai ổ cứng trong máy tính xách tay để làm việc. Tôi đã chuyển thành công phân vùng nhà của mình, nhưng các bước tương tự tôi đã sử dụng không hoạt động cho root.

Tiến bộ cho đến nay:

Tôi đã ddphân vùng gốc của tôi từ /dev/sda3vào /dev/sdb3. Tôi đã sửa đổi /etc/fstabnhư sau:

$ cat /etc/fstab
# 
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>
# UUID=95f13c34-96ca-49e3-bcb2-ff594df31506
/dev/sdb3               /               btrfs           rw,noatime,ssd,space_cache,discard      0 0

# UUID=0fe04f59-599f-41e2-ac30-2ad0f17a9727
/dev/sda2               /boot           ext2            rw,relatime     0 2

# UUID=44741e0f-924a-4841-80ef-2132bef84182
/dev/sda4               /home           ext4            rw,noatime,discard      0 0

và chạy sudo mkinitcpio -p linux. Nó dường như làm việc. Tôi có thể khởi động bằng cách gắn phân vùng trên đĩa thứ hai. dftrình diễn:

$ df
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb3        28G   18G  9.8G  65% /

Vì vậy, rõ ràng, sdb3được gắn kết, không sda3. Đây là bước có vấn đề: Khi tôi cố gắng định dạng sda3, được cho là không được sử dụng, tôi nhận được như sau:

$ sudo mkfs.ext4 /dev/sda3
[sudo] password for stew: 
mke2fs 1.42.11 (09-Jul-2014)
/dev/sda3 contains a btrfs file system
Proceed anyway? (y,n) y
/dev/sda3 is apparently in use by the system; will not make a filesystem here!

sda3đang được sử dụng Làm thế nào và tại sao nó có thể được sử dụng?

Theo nhận xét của casey, đầu ra của mount:

mount | grep sd
/dev/sdb3 on / type btrfs (rw,noatime,ssd,discard,space_cache)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)

Theo nhận xét của Warwick, không đếm được:

$ sudo umount /dev/sda3
umount: /dev/sda3: not mounted

Gắn và nối sda3 ở nơi khác hoạt động thành công, nhưng không thay đổi gì.

Cập nhật: Hành vi tanh cá hơn:

$ mount | grep sd
/dev/sdb3 on / type btrfs (rw,noatime,ssd,discard,space_cache)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)
$ sudo mount /dev/sda3 mnt
[sudo] password for stew: 
$ mount | grep sd
/dev/sda3 on / type btrfs (rw,noatime,ssd,discard,space_cache)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)
/dev/sda3 on /home/stew/mnt type btrfs (rw,relatime,ssd,discard,space_cache)

Sau khi gắn sda3, sdb3 không còn xuất hiện nữa. Lạ nhỉ?

Theo mikeerv:

$ rmmod btrfs
rmmod: ERROR: Module btrfs is in use

Điều này rất được mong đợi, vì sdb3 là btrfs và được cho là được gắn vào root. Từ tập tin mkinitcpio.conf của tôi:

MODULES=""
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"

Hãy thử gắn nó, sau đó ngắt kết nối nó. Có lẽ một lá cờ được đặt ở đâu đó khiến nó nghĩ rằng nó được gắn khi không. Nếu nó bị lỗi khi gắn, hy vọng nó sẽ cho bạn biết điểm gắn kết mà nó nghĩ rằng nó được gắn vào.
Warwick

lấy các mô-đun hạt nhân btrfs / hook ra khỏi initramfs. vòm có một vài trong số họ. ngoài danh sách đen khác hoặc wipefstrên đĩa để loại bỏ các siêu khóa ... rmmod.... Có rất nhiều cách bạn có thể đi, nhưng tất cả chúng sẽ đến với bạn không tải hoặc dỡ bỏ mô-đun.
mikeerv

1
có thể một số chương trình khác đã mở / dev / sda3
lập trình viên vào

1
Bạn thực sự nên làm điều này từ một môi trường sống ...
jasonwryan

@case Xong. / dev / sdb3 được gắn rõ ràng
stewSquared

Câu trả lời:


5

Tôi đã hiểu rồi. Bộ tải khởi động của tôi không được cấu hình đúng. Nghe có vẻ rõ ràng, phải không? Sửa đổi fstab không đủ điều kiện như cấu hình bộ nạp khởi động. Tôi đã phải thay đổi một dòng trong /boot/syslinux/syslinux.cgfđể tham khảo phân vùng khởi động chính xác.

Điều đó nói rằng, không cần phải khởi động đĩa thứ hai ở vị trí đầu tiên. Tôi có thể tránh được vấn đề này bằng cách hoàn thành toàn bộ quá trình trong một môi trường sống và chroot-ing để chạy mkinitcpio.


2
Vì vậy, bạn đã khởi động tắt sda3 sau đó gắn sdb3 trên / trên nó, ghi đè lên mục mtab, do đó đầu ra lệnh mount không hiển thị dấu hiệu của sda3.
Kyle Jones

@KyleJones Yup. Điều đó tổng hợp nó lên.
stewSquared
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.