파티션이 마운트되지 않은 경우 시스템에서 파티션을 사용하는 이유는 무엇입니까?


12

VM의 성능 문제가 발생한 후 시스템을 btrfs에서 ext4로 마이그레이션했습니다. 랩톱에 사용할 두 개의 하드 드라이브가 있습니다. 홈 파티션을 성공적으로 옮겼지만 사용한 것과 동일한 단계가 루트에서 작동하지 않습니다.

지금까지 진행 :

나는 한 dd'에서 내 루트 파티션을 거라고 /dev/sda3/dev/sdb3. 나는 /etc/fstab다음과 같이 수정 했다.

$ 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

실행합니다 sudo mkinitcpio -p linux. 작동하는 것 같습니다. 두 번째 디스크에 파티션을 마운트하여 부팅 할 수 있습니다. df보여줍니다 :

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

따라서 분명히 sdb3그렇지 않습니다 sda3. 문제가있는 단계 sda3는 다음과 같습니다. 형식을 사용하려고 할 때 사용하지 않는 것으로 가정하면 다음과 같은 결과가 나타납니다.

$ 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사용 중입니다. 어떻게 그리고 왜 사용할 수 있습니까?

casey의 의견에 따라 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)

Warwick의 의견에 따라 마운트 해제 :

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

다른 곳에서 sda3를 마운트 및 마운트 해제하면 성공적으로 작동하지만 아무것도 변경되지 않습니다.

업데이트 : 더 비린내 행동 :

$ 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)

sda3을 마운트 한 후 sdb3은 더 이상 마운터가 아닙니다. 이상해?

mikeserv에 따라 :

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

sdb3가 btrfs이고 root에 마운트되기 때문에 이것은 매우 기대됩니다. 내 mkinitcpio.conf 파일에서 :

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

마운트 한 다음 마운트 해제하십시오. 아마도 플래그가 마운트되지 않은 경우 마운트되었다고 생각하도록 어딘가에 설정되었을 수 있습니다. 마운트 할 때 오류가 발생하면 마운트 포인트가 마운트되었다고 생각합니다.
Warwick

initramfs에서 btrfs 커널 모듈 / 후크를 가져옵니다. 아치에는 몇 가지가 있습니다. 그렇지 않으면 wipefs수퍼 블록을 제거하기 위해 디스크 또는 디스크에 블랙리스트를 올릴 수 rmmod있습니다 ... .... 많은 방법이 있지만 모듈을로드하거나 언로드하지 않는 것이 좋습니다.
mikeserv

1
다른 프로그램에서 / dev / sda3을 열었을 수도 있습니다
programmerjake

1
당신은 정말로 실제 환경에서 이것을해야합니다 ...
jasonwryan

@ 사례 완료. 는 / dev / sdb3이 장착 분명히
stewSquared

답변:


5

나는 그것을 알아. 부트 로더가 제대로 구성되지 않았습니다. 분명히 들리나요? fstab을 수정해도 부트 로더를 구성 할 수있는 자격이 없습니다. /boot/syslinux/syslinux.cgf올바른 부팅 파티션을 참조하기 위해 줄을 바꿔야했습니다 .

즉, 두 번째 디스크를 먼저 부팅 할 필요가 없습니다. 라이브 환경에서 전체 프로세스를 완료하고 chroot-ing in을 실행 하여이 문제를 피할 수있었습니다 mkinitcpio.


2
따라서 sda3을 부팅 한 다음 sdb3을 위에 / 위에 마운트하여 mtab 항목을 덮어 썼으므로 mount 명령 출력에 sda3의 부호가 표시되지 않았습니다.
Kyle Jones

@KyleJones Yup. 요약하자면.
stewSquared
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.