blkid 항목에 지정된 파일 시스템 유형의 bash 변수를 설정하려고 시도하는 /etc/init.d 파일에 대한 /etc/rc.d/S11 링크가 있습니다.
root@OpenWrt:/# blkid /dev/mmcblk1p3
/dev/mmcblk1p3: UUID="77111d8a-feb7-470c-a489-ffa0e5415c4c" TYPE="f2fs"
root@OpenWrt:/#
awk
명령에 a를 추가하려고 시도했습니다.
root@OpenWrt:/# blkid /dev/mmcblk1p3 | awk '{print $3}'
TYPE="f2fs"
root@OpenWrt:/#
이상적으로는 이것만 필요 f2fs
하고 다른 것은 필요하지 않습니다. awk -F = '{print $3}'
반품 사용
root@OpenWrt:/# blkid /dev/mmcblk1p3 | awk -F = '{print $3}'
"f2fs"
root@OpenWrt:/#
스크립트에서는 나중에 스크립트에서 사용할 수 있도록 bash 변수로 설정해 보았습니다.
CUR_FS=$(blkid /dev/mmcblk1p3 | awk '{print $3}');
그러나 커널 로그로 보낸 디버그 메시지에는 비어 있습니다.
echo "[DEBUG] Shield is in ${SHIELD_MODE} Mode - Using /dev/${MNT_POINT} as ${CUR_FS}" > /dev/kmsg
상품을 반품하다
[ 34.836024] [DEBUG] Shield is in Gateway Mode - Using /dev/mmcblk1p3 as
비어 있습니다.
누군가 OpenWrt에 이 기능이 없다는 점을 지적하기 전에 bash
(기본적으로 Ash 사용) 맞춤 빌드 및 베이킹을 수행하고 있습니다 bash
.
f2fs
누군가 큰따옴표 없이 최종 결과를 얻는 방향을 알려줄 수 있나요?
출력을 blkid
파일에 쓰면 빈 파일이 제공됩니다.
blkid /dev/mmcblk1p3 2>&1 > /tmp/output
lsblk --noheadings -o FSTYPE /dev/mmcblk1p3 2>&1 > /tmp/output2
편집자 주: 내 시스템에서는 lsblk와 blkid가 분리되어 있으므로 두 가지 접근 방식을 모두 시도했습니다. 여전히 공백으로 표시됩니다. 내가 너무 일찍 소리쳤나? 또한 $PATH
아직 설정되지 않은 경우를 대비해 명령에 전체 하드 경로를 입력해 보았습니다. 여전히 비어 있습니다.
편집 2: 누군가 init 스크립트가 너무 일찍 호출되었다고 제안했습니다. S99
거의 마지막에 호출되고 파일 시스템 호출이 여전히 비어 있도록 테스트 용 스크립트를 설정했습니다 .
S99extroot가 문제의 스크립트입니다. 처음에 나는 S11
.
K10gpio_switch K99umount S19dropbear S94gpio_switch
K10snort S00sysfixtime S19firewall S95done
K50dropbear S10boot S20network S96led
K85odhcpd S10system S35odhcpd S98sysntpd
K89log S11sysctl S50cron S99extroot
K90network S12log S50uhttpd S99urandom_seed
K90sysfixtime S12rpcd S80ucitrack
K98boot S19dnsmasq S90snort
root@OpenWrt:/#
답변1
init
blk 장치를 사용할 수 있을 때까지 지연해야 했습니다 . 계속 확인하도록 루프 에 넣어서 while true
그렇게 할 수 있도록 하세요 mknod
.