Home Assistant OS · Mount It Add-on
커스텀 마운트 옵션 패치 가이드
로컬 애드온으로 fork하여 vfat 마운트 옵션(fmask/dmask/utf8/shortname 등)을 직접 지정하는 방법
01 배경
Mount It 애드온의 config.yaml은 mount_unlabeled, specific_label, mount_location 등
몇 가지 옵션만 제공하며, vfat/exfat 마운트 시 사용할 raw mount 옵션(fmask, dmask, utf8, shortname, errors 등)을 지정하는 설정 항목은 없다.
해당 옵션들은 init-mount 서비스의 run 스크립트 안에 하드코딩되어 있어, UI/config만으로는 변경할 수 없다.
→ 애드온 소스를 로컬로 가져와 스크립트를 직접 수정하고, HAOS의 로컬 애드온 기능으로 설치하는 방식으로 해결한다.
02 목표 마운트 커맨드
mount -t vfat -o rw,nosuid,relatime,fmask=0000,dmask=0000,utf8,shortname=mixed,errors=remount-ro /dev/mmcblk0p1 /mnt/MP3CARD
| 옵션 | 현재 (원본) | 변경 후 |
|---|---|---|
rw | 기본값 (적용됨) | 동일 |
nosuid,relatime | 적용됨 | 동일 |
fmask / dmask | umask=000으로 통합 처리 | fmask=0000,dmask=0000 개별 지정 |
utf8 | 미지정 | 추가 |
shortname=mixed | 미지정 | 추가 |
errors=remount-ro | 미지정 | 추가 |
03 수정 대상 코드
파일 경로:
mount_drive() 함수 내 파일시스템 타입별 옵션 분기(case) 구문을 수정한다.
- exfat|vfat|msdos) - bashio::log.warning " $mdisk — $fstype (experimental, no ACL support)" - options="${options},umask=000" ;; + vfat|msdos) + bashio::log.warning " $mdisk — $fstype (experimental, no ACL support)" + options="${options},fmask=0000,dmask=0000,utf8,shortname=mixed,errors=remount-ro" ;; + exfat) + bashio::log.warning " $mdisk — $fstype (experimental, no ACL support)" + options="${options},umask=000" ;;
utf8과 shortname=mixed는 vfat/msdos 드라이버 전용 옵션이며 exfat 드라이버는 이를 지원하지 않는다.
원본처럼 exfat|vfat|msdos를 하나로 묶으면 exfat 마운트 시 옵션 오류로 실패할 수 있으므로, 반드시 vfat|msdos와 exfat을 분리해야 한다.
04 적용 절차
-
HAOS에 SSH 접속
SSH & Web Terminal 애드온을 통해 접속한다.
-
소스 클론 및 로컬 애드온 폴더 생성
cd /addons git clone https://github.com/EnderDragonEP/HomeAssistant-Apps.git temp-mountit mkdir -p mountit_custom cp -r temp-mountit/mountit/* mountit_custom/ rm -rf temp-mountit -
config.yaml 수정 — 이름/slug 변경
원본 스토어 버전과의 충돌을 막기 위해 이름과 slug를 변경한다.
name: "Mount It (KR)" slug: mountit_kr -
run 스크립트 패치
init-mount/run파일에서 02번 섹션의 diff대로 case 구문을 수정한다. -
원본 스토어 버전 제거
Settings → Add-ons → Mount It → Uninstall
-
로컬 애드온 인식 및 설치
Settings → Add-ons → Add-on Store → 우측 상단 ⋮ → Check for updates → 하단 Local add-ons 섹션에서 설치 (로컬 빌드로 몇 분 소요)
-
설정 및 실행
기존과 동일하게 옵션(
mount_location,specific_label등) 설정 → Protection mode 해제 → Start
05 검증
애드온 시작 후 SSH에서 실제 마운트 옵션이 반영됐는지 확인한다.
mount | grep MP3CARD
출력에 fmask=0000,dmask=0000,utf8,shortname=mixed,errors=remount-ro가 포함되어 있으면 정상 적용된 것이다.