Respostas:
Não pense no Android como uma distribuição Linux fortemente modificada. Porque não é. A quase única coisa que o Android compartilha com uma distribuição Linux é o kernel. E mesmo este componente é modificado. Também outros componentes principais, como o libc, diferem.
Android não tem /etc/fstab
Você não precisa /etc/fstab
montar uma partição. Mas também não há mount
comando para o IIRC . dev_mount
deve funcionar (raiz necessária). Para responder ao título das suas perguntas: Toda a montagem do sistema de inicialização é feita com o /etc/vold.fstab
script auxiliar.
O arquivo fstab está em /
.
Chama-se /fstab.$systemname.rc
where $systemname
é baseado na propriedade de impressão digital do aparelho, identificada como categoria do chipset ou do próprio aparelho.
/etc/vold.fstab
. :)
vold.fstab
, e no 4.3 e versões posteriores /fstab.<device>
.
Estou vendo informações conflitantes. Um recurso diz que é codificado permanentemente ; portanto, não é algo que você possa alterar do lado do usuário:
Os programas init específicos do Android são encontrados em device / system / init. Adicione mensagens de LOG para ajudá-lo a depurar possíveis problemas com a macro LOG definida em device / system / init / init.c.
O programa init monta diretamente todos os sistemas de arquivos e dispositivos usando nomes de arquivos codificados ou dispositivos gerados pela análise do sistema de arquivos sysfs (eliminando assim a necessidade de um arquivo / etc / fstab no Android).
Em outros lugares /etc/vold.fstab
e /etc/vold.conf
são mencionados. Eu os tenho no meu dispositivo no CM 7.1, mas não tenho certeza de como eles são usados.
init.rc
arquivo que mora no seu ramdisk, para que você possa puxar o seu boot.img, extrair o seu ramdisk e modificá- init.rc
lo e reembalá-lo novamente (brevemente discutido aqui , e a fonte do Tiamat é um bom exemplo de configuração de pontos de montagem init.rc
)
Você pode remontar seu armazenamento externo para ser executável executando
mount -o remount, rw /mnt/sdcard
isso removerá os sinalizadores noexec, nosuid e nodev, mas ainda será vfat fs. Você pode fazer links para este FS, mas não de dentro. A remontagem não sobrevive a uma reinicialização, porque o arquivo vold.fstab será lido e será remontado na reinicialização com os sinalizadores noexec.
Se você reformatar algum de seu armazenamento externo para algo diferente de vfat, eles não serão remontados na reinicialização e os aplicativos que você moveu para qualquer armazenamento externo não serão utilizáveis. Se você não pretende usar armazenamento externo para aplicativos, desmonte seu armazenamento externo e use-o busybox mke2fs DEVICE
para torná-lo ext2. Use busybox newfs_msdos DEVICE
para devolvê-lo ao vfat e torná-lo utilizável novamente.
Nota busybox mkfs.vfat
está quebrada, você receberá algo como
lseek: valor muito grande para o tipo de dados definido
então não perca seu tempo. Tudo isso pressupõe que você esteja enraizado e tenha um binário do busybox funcionando.
Sei que esse é um tópico antigo, mas algumas das respostas aqui realmente atrapalharam meus esforços para aprender sobre o fstab
Android, porque elas implicam fortemente que a fstab
situação no Android é extremamente diferente de outras distribuições Linux. Pelo que sei, não é.
No entanto, ler respostas diferentes aqui me fez pensar: que fstab
arquivos ou arquivos equivalentes estão no meu dispositivo?
Recuar por um momento, observando que "O Android não possui / etc / fstab " provavelmente não é útil para o OP, pois eles já devem saber disso. Se isso não fosse verdade, a pergunta deles (perguntando qual é o equivalente do Android /etc/fstab
) não faria sentido. Por outro lado, sabemos que o @Flow não estava tentando sugerir que não havia equivalente no Android, pois eles mencionaram um deles, um "script auxiliar" chamado /etc/vold.fstab
.
Em suma, acho que a dica do post do @ Flow é que, em alguns sistemas, existe um arquivo (possivelmente um "script auxiliar" - não posso verificar isso no meu telefone) chamado /etc/vold.fstab
e, nesses sistemas, esse arquivo é o equivalente mais próximo de /etc/fstab
.
Voltando a me perguntar sobre meu próprio dispositivo, vou postar minhas descobertas aqui por vários motivos, apesar da idade do OP:
fstab
arquivos de estilo que posso encontrar no meu telefone, um Pixel 2XL.Então, deixe-me tentar resumir tudo o que aprendi com tudo isso:
O Android, ou pelo menos suas variantes às quais tenho acesso, usa fstab
arquivos -style. No entanto, o nome exato, o local e a função desses arquivos variam de acordo com a distribuição, ou seja, a versão e o dispositivo Android e também a ROM, se você usar uma ROM personalizada.
Para encontrar esses arquivos em seu sistema, abra um emulador de terminal como tmux
ou adb shell
e executar algo como isto: find / -type f -iname '*fstab*' 2>/dev/null
. O redirecionamento do arquivo 2 ( stderr
) para /dev/null
tornar sua saída muito mais limpa, pois você poderá ignorar o ataque de mensagens de erro das quais receberá find
, mesmo que seja root
.
No meu sistema (um Pixel 2XL, codinome "taimen"), encontrei três arquivos candidatos:
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
Os dois primeiros são arquivos separados, pois nenhum deles é um link simbólico ou físico para o outro, mas, se você diff
os encontrar, descobrirá que são idênticos. Olhando um pouco mais fundo, se você executar stat
os arquivos, verá que eles têm os mesmos valores de Dispositivo e 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
relata esses dois nomes de arquivos como arquivos regulares com apenas um link cada (portanto, não há links simbólicos ou físicos). Não sou especialista em sistemas de arquivos, mas o que aconteceu aqui é que o mesmo dispositivo foi montado duas vezes. Você pode ver isso na saída do comando a seguir, onde as únicas diferenças entre as duas linhas de saída são os pontos de montagem (a parte imediatamente após "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)
O terceiro arquivo só está visível para mim se eu fizer login como root; portanto, se você tiver um dispositivo idêntico ao meu, ainda não encontrará ou terá acesso a esse arquivo, a menos que seu telefone esteja enraizado. Esse arquivo tem a ver com um serviço chamado Open Mobile Alliance Device Management, mas esse é um serviço que eu conheço muito pouco, então vou mencioná-lo aqui, e você pode pesquisar no Google por detalhes, se quiser.
/system/etc
ou em outro /vendor/etc
. Obrigado por trazer novas informações.
mount: bad /etc/fstab: No such file or directory
. Você tem alguma ideia ou solução para isso?