Archlinux가 시작될 때 aufs 파일 시스템을 마운트하는 방법은 무엇입니까?

Archlinux가 시작될 때 aufs 파일 시스템을 마운트하는 방법은 무엇입니까?

aufs를 사용하여 여러 디스크를 결합하고 싶습니다. 명령줄에서 mount 명령을 사용하여 aufs 파일 시스템을 마운트할 수 있습니다.

그러나 fstab 항목을 통해 동일한 파일을 설치하려고 하면 실패합니다. Google에서는 fstab이 지정된 순서대로 파일 시스템을 마운트하지 않아 문제가 발생한다고 말했습니다. 또한 aufs가 fstab 다음에 마운트되도록 rc.local에 마운트 명령을 추가하라는 제안도 찾았습니다.

저는 systemd를 사용하는 Archlinux를 사용하고 있는데 systemd에서 부팅 시 mount 명령을 어떻게 실행할 수 있나요?

답변1

저 같은 분들을 위해 단계별 지침을 게시해야겠다고 생각했습니다. 제가 여기까지 올 수 있도록 도와주신 David Bagman에게 감사드립니다.

/etc/systemd/system/mnt-aufs.mount저는 다음 내용으로 만들었습니다 .

[Unit]
Description = AUFS disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

[Mount]
What = none
Where = /mnt/aufs
Type = aufs
Options = br:/mnt/data01/=rw:/mnt/data02/=rw:/mnt/data03/=rw,sum,create=mfs

[Install]
WantedBy = multi-user.target

그런 다음 systemd를 실행하여 systemctl daemon-reload장치를 로드합니다. systemctl start mnt-aufs.mount디스크를 마운트하거나 systemctl enable mnt-aufs.mount부팅 시 시작하려면 실행하세요 .

이는 다음을 /etc/rc.localinit 스크립트에 복사하여 붙여넣는 것과 동일하며 훨씬 쉽습니다. 왜 systemd에 동등한 파일이 없는지 궁금합니다.

mount -t aufs -o br:/mnt/disk01=rw:/mnt/disk02=rw: /mnt/disk03=rw,sum,create=mfs none /mnt/aufs

답변2

Systemd는 mount() 를 기본적으로 지원합니다 man systemd.mount. 실제로 systemd는 이를 읽고 /etc/fstab이를 사용하여 설치 단위를 생성하고 파일 시스템 자체를 마운트합니다.

fstab종속성 대신 설치 단위를 수동으로 생성하는 것도 가능합니다. , 등 /dev/sys시스템 설치가 처리되는 방식 입니다 ( ). 이 방법을 사용하면 시스템 종속성을 사용하여 항목이 올바른 순서로 설치되었는지 확인할 수 있습니다./proc/usr/lib/systemd/system/*.mount

systemd 마운트 단위 파일의 이름은 해당 파일이 제어하는 ​​마운트 지점의 이름을 따서 지정해야 합니다( man systemd.unit). 예 를 들어 USB 백업 드라이브를 /mnt/backup./etc/systemd/system/mnt-backup.mount

[Unit]
Description = USB backup disk

[Mount]
What = LABEL=david-usb-backup
Where = /mnt/backup
Type = ext4

[Install]
WantedBy = multi-user.target

그런 다음 systemd를 실행하여 systemctl daemon-reload장치를 로드합니다. 실행하여 systemctl start mnt-backup.mount디스크를 마운트하거나 systemctl enable mnt-backup.mount부팅 시 시작할 수 있습니다.

종속성의 경우 Requires = some-other-mnt-point.mount해당 [Unit]섹션 아래에 추가하세요. 또는 BindTo대신 사용할 수 있습니다 Requires. 이렇게 하면 종속성 중 하나가 사라지면 제거됩니다. 그러나 Requires디스크의 설치 순서에는 영향을 미치지 않습니다. 따라서 aufs 전에 디스크가 마운트되었는지 확인하려면 After.

Requires편집: sum 사용을 확장하려면 After단위 부분이 다음과 같을 수 있습니다.

[Unit]
Description = USB backup disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

답변3

최신 버전의 systemd는 fstab에서 x-systemd.requires 옵션을 지원하므로 systemd.mount 장치를 사용하지 않고 fstab을 계속 사용하려면 다음을 시도하십시오.

aufs /mnt/storage aufs ro,nobootwait,dirs=/mnt/storage2=ro:/mnt/storage1=ro:/mnt/storage3=ro:/mnt/storage4=ro:/mnt/storage0=ro:/mnt/storage5=ro:/mnt/storage6=ro:/mnt/storage7=ro:/mnt/storage8,xino=/dev/shm/aufs.xino,x-systemd.requires=mnt-storage0,x-systemd.requires=mnt-storage1,x-systemd.requires=mnt-storage2,x-systemd.requires=mnt-storage3,x-systemd.requires=mnt-storage4,x-systemd.requires=mnt-storage5,x-systemd.requires=mnt-storage6,x-systemd.requires=mnt-storage7,x-systemd.requires=mnt-storage8  0 0

답변4

/etc/rc.local을 사용하는 것이 좋습니다

다음 예를 시도해 보세요.

# cat > /etc/rc.local << EOF
mount -t squashfs -o loop /usr/src/system_packages.squashfs /var/mount_point/
mount -t aufs -o remount,append:/var/mount_point/ none / 
EOF

관련 정보