답변:
Android를 크게 수정 된 Linux 배포판으로 생각하지 마십시오. 그렇지 않기 때문입니다. 안드로이드가 리눅스 배포판과 공유하는 거의 유일한 것은 커널입니다. 그리고이 구성 요소조차도 수정되었습니다. libc와 같은 다른 핵심 구성 요소도 다릅니다.
안드로이드는 없다 /etc/fstab
/etc/fstab
파티션을 마운트 할 필요가 없습니다 . 그러나 IIRC mount
명령도 없습니다. dev_mount
작동해야합니다 (루트 필요). 질문 제목에 대답하려면 : 모든 시작 시스템 마운팅은 /etc/vold.fstab
도우미 스크립트를 사용하여 수행됩니다 .
fstab 파일은에 /
있습니다.
칩셋의 카테고리 또는 핸드셋 자체로 식별되는 핸드셋의 지문 속성을 기반으로하는 /fstab.$systemname.rc
위치 라고 $systemname
합니다.
/etc/vold.fstab
. :)
vold.fstab
에서는 4.3 이상에서는 /fstab.<device>
입니다.
충돌하는 정보가 있습니다. 한 리소스는 하드 코딩 되어 있으므로 사용자 측을 변경할 수있는 것은 아닙니다.
Android 특정 init 프로그램은 device / system / init에 있습니다. device / system / init / init.c에 정의 된 LOG 매크로의 잠재적 문제점을 디버그하는 데 도움이되는 LOG 메시지를 추가하십시오.
init 프로그램은 sysfs 파일 시스템을 조사하여 생성 된 하드 코드 파일 이름 또는 장치 이름을 사용하여 모든 파일 시스템과 장치를 직접 마운트합니다 (따라서 Android에서 / etc / fstab 파일이 필요하지 않음).
다른 곳 /etc/vold.fstab
과 /etc/vold.conf
언급된다. CM 7.1 아래의 장치에 있지만 어떻게 사용되는지 잘 모르겠습니다.
init.rc
당신이 당신의 boot.img를 당겨 당신의 램 디스크를 추출, 다음을 수정할 수 있도록 램 디스크의 삶 해당 파일이 init.rc
다시 재 포장 (간략하게 논의 여기 와 티아마트의 소스 에서 마운트 포인트를 설정하는 좋은 예입니다 init.rc
)
다음을 실행하여 실행 가능하도록 외부 저장소를 다시 마운트 할 수 있습니다
mount -o remount, rw /mnt/sdcard
이것은 noexec, nosuid 및 nodev 플래그를 제거하지만 여전히 vfat fs입니다. 이 fs에 대한 링크는 만들 수 있지만 내부에서는 사용할 수 없습니다. vold.fstab 파일을 읽고 noexec 플래그를 사용하여 재부팅 할 때 다시 마운트되기 때문에 다시 마운트는 재부팅 후에도 지속되지 않습니다.
외부 저장소를 vfat 이외의 형식으로 다시 포맷하면 재부팅시 다시 탑재되지 않으며 외부 저장소로 이동 한 앱은 사용할 수 없습니다. 앱에 외부 저장소를 사용하지 않으려면 외부 저장소를 마운트 해제 busybox mke2fs DEVICE
하고 ext2로 만드는 데 사용할 수 있습니다. 사용 busybox newfs_msdos DEVICE
VFAT로 돌아가 다시 사용할 수 있도록.
메모 busybox mkfs.vfat
가 깨졌습니다.
lseek : 정의 된 데이터 유형에 비해 너무 큰 값
시간을 낭비하지 마십시오. 이 모든 것은 당신이 루팅되고 작동중인 busybox 바이너리를 가지고 있다고 가정합니다.
나는 이것이 오래된 주제라는 것을 알고 있지만 여기에있는 답변 중 일부는 fstab
Android 에 대한 나의 노력을 방해했습니다 .Android 의 fstab
상황이 다른 Linux 배포판과 매우 다르다는 것을 암시하기 때문 입니다. 내가 말할 수있는 것은 그렇지 않습니다.
그러나 여기에서 다른 응답을 읽으면 내 장치 fstab
에 어떤 파일이나 파일이 있습니까?
" Android에 / etc / fstab이 없습니다 "라는 점을 알고 잠시 후퇴 한 것은 이미 알고 있었기 때문에 OP에 도움이되지 않을 것입니다. 이것이 사실이 아니라면 (Android에 해당하는 /etc/fstab
것이 무엇인지 묻는) 그들의 질문 은 의미가 없습니다. 반면 @Flow는 Android에 해당하는 '도우미 스크립트'라는 이름을 언급했기 때문에 Android에 해당하는 것이 없음을 암시하려고하지 않았습니다 /etc/vold.fstab
.
@Flow의 게시물에서 가져온 것은 일부 시스템에는 파일 ( "도우미 스크립트"일 가능성이 있습니다-전화에서 확인할 수 없음) /etc/vold.fstab
이 있고 해당 시스템 에서이 파일은 에 가장 가까운 것과 같습니다 /etc/fstab
.
내 기기에 대해 궁금해지기 시작하면서 OP의 나이에도 불구하고 여러 가지 이유로 내 조사 결과를 여기에 게시하려고합니다.
fstab
내 전화, 픽셀 2XL에서 찾을 수있는 스타일 파일을.이 모든 것에서 배운 모든 것을 요약 해 보겠습니다.
Android 또는 적어도 내가 액세스 할 수있는 변형은 fstab
스타일 파일 을 사용 합니다. 그러나이 파일의 정확한 이름, 위치 및 기능은 배포판에 따라 다릅니다. 즉, Android 버전 및 장치와 사용자 정의 ROM을 사용하는 경우 ROM에 따라 다릅니다.
, 시스템에 이러한 파일을 찾을 같은 터미널 에뮬레이터를 열려면 tmux
또는 adb shell
이 뭔가를 실행합니다 find / -type f -iname '*fstab*' 2>/dev/null
. 파일 2 ( stderr
)를 리디렉션 /dev/null
하면 출력 오류 메시지를 무시할 수 있기 때문에 출력을 훨씬 더 깨끗하게 만들 find
수 있습니다 root
.
내 시스템 (Pixel 2XL, 코드 이름 "taimen")에서 세 개의 후보 파일을 찾았습니다.
taimen:/ # find / -type f -iname '*fstab*' 2>/dev/null
/sbin/.core/mirror/vendor/etc/fstab.taimen
/vendor/etc/fstab.taimen
/data/data/com.android.omadm.service/files/dm/dmt_data/fstab
처음 두 개는 다른 파일에 대한 하드 링크 나 심볼릭 링크가 아니라는 별도의 파일이지만, 파일이 같으면 diff
동일하다는 것을 알 수 있습니다. 좀 더 깊게 살펴보면 stat
파일에서 실행 하면 동일한 Device 및 Inode 값이 있음을 알 수 있습니다.
taimen:/ # stat /sbin/.core/mirror/vendor/etc/fstab.taimen /vendor/etc/fstab.taimen
File: `/sbin/.core/mirror/vendor/etc/fstab.taimen'
Size: 1326 Blocks: 16 IO Blocks: 512 regular file
Device: fc00h/64512d Inode: 925 Links: 1
Access: (644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-01-01 02:00:00.000000000
Modify: 2009-01-01 02:00:00.000000000
Change: 2009-01-01 02:00:00.000000000
File: `/vendor/etc/fstab.taimen'
Size: 1326 Blocks: 16 IO Blocks: 512 regular file
Device: fc00h/64512d Inode: 925 Links: 1
Access: (644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-01-01 02:00:00.000000000
Modify: 2009-01-01 02:00:00.000000000
Change: 2009-01-01 02:00:00.000000000
stat
이 두 파일 이름은 각각 하나의 링크 만있는 일반 파일로보고합니다 (따라서 하드 링크 나 기호 링크는 포함되지 않음). 나는 파일 시스템 전문가는 아니지만 여기서 일어난 일은 동일한 장치가 두 번 마운트되었다는 것입니다. 다음 명령의 출력에서이를 확인할 수 있습니다. 여기서 두 출력 행 사이의 유일한 차이점은 마운트 지점 ( "on"바로 다음 부분)입니다.
taimen:/ $ mount | grep vendor
/dev/block/dm-0 on /vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
/dev/block/dm-0 on /sbin/.core/mirror/vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
세 번째 파일은 루트로 로그인 한 경우에만 나에게 표시되므로 내 장치와 동일한 장치를 사용하는 경우 휴대 전화가 루팅되지 않는 한이 파일을 찾거나 액세스 할 수 없습니다. 이 파일은 Open Mobile Alliance Device Management라는 서비스와 관련이 있지만, 내가 아는 바는 거의없는 서비스이므로 여기서 언급 할 것입니다. 원하는 경우 Google에 자세한 내용을 알려줄 수 있습니다.
/system/etc
또는 에 독립 실행 형 fstab 파일을 가질 정도로 상당히 변경되었습니다 /vendor/etc
. 신선한 정보를 가져 주셔서 감사합니다.
mount: bad /etc/fstab: No such file or directory
. 이에 대한 생각이나 해결책이 있습니까?