O btrfs não suporta errors=continue
?
Na minha distribuição Yocto não consigo montar a chave USB com exfat
o sistema de arquivos.
Se eu executar o comando:
> blkid /dev/sda
/dev/sda: LABEL="my-label" UUID="FC4D-5949" BLOCK_SIZE="512" TYPE="exfat"
Então tenho certeza que o sistema de arquivos USB é exfat
, mas quando tento executar o mount
comando recebo o seguinte erro:
> mount /dev/sda /media
mount: /media: unknown filesystem type 'exfat'.
Se eu executar o comando cat /proc/filesystems
( aqui encontrei o cat
comando), a lista de sistemas de arquivos suportados é:
> cat /proc/filesystems
nodev sysfs
nodev tmpfs
nodev bdev
nodev proc
nodev cgroup
nodev cgroup2
nodev cpuset
nodev devtmpfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev bpf
nodev pipefs
nodev ramfs
nodev hugetlbfs
nodev rpc_pipefs
nodev devpts
ext3
ext2
ext4
vfat
msdos
iso9660
nodev nfs
nodev nfs4
nodev cifs
nodev smb3
nodev autofs
nodev overlay
nodev efivarfs
nodev mqueue
btrfs
exfat
está faltando.
Alguém poderia me explicar como posso montar um exfat
USB na minha distribuição yocto?
Originalmente, mv(1)
era uma operação de renomeação; atualizava nomes em sistemas de arquivos e não copiava arquivos. Mais recentemente, um recurso de conveniência foi adicionado, pelo qual se a origem e o destino estivessem em sistemas de arquivos diferentes, ele copiaria e excluiria os arquivos. Também conhecido como "inter-device move".
Agora eu estava tentando arrumar meus backups. Eu queria mudar .../rest2/Public/Backups
para .../rest2/Backup/(Backups)
, então:
root@ts412:/QNAP/mounts/rest2# mv Public/Backups Backup/
Onde:
root@ts412:/QNAP/mounts/rest2# df -h /QNAP/mounts/rest2/Public/
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# df -h /QNAP/mounts/rest2/Backup/
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
Então, o mesmo sistema de arquivos:
(Para sua informação, rest2
é "o resto do espaço em disk2
")
Mas a mudança começou a se comportar como uma "mudança entre dispositivos" (alta CPU, discos ocupados, vários erros sobre diretórios não vazios etc.), então eu a eliminei.
Verificando de uma forma ligeiramente diferente (observe o .
):
root@ts412:/QNAP/mounts/rest2# df -h Backup/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# df -h Public/Backups/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2/Public
Então eu lembro que EU TAMBÉM tinha um bind mount (ele torna os nomes compartilhados via NFS mais amigáveis). Então eu desmontei o bind mount extra:
root@ts412:/QNAP/mounts/rest2# umount /QNAP/mounts/rest2/Public
root@ts412:/QNAP/mounts/rest2# df -h Public/Backups/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# mv Public/Backups Backup/
E mv(1)
foi instantâneo, como eu esperava.
Então, apesar dos s extras mount(8)
, a fonte e o alvo sempre estavam no mesmo sistema de arquivos , o que mount -o bind /QNAP/mounts/rest2/Backups /Backups
não afeta isso. Então, estou pensando se mv(1)
obtém pontos de montagem de volta /QNAP/mounts/rest2
para um e /QNAP/mounts/rest2/Public
para o outro, ele decide incorretamente que os dois arquivos estão em sistemas de arquivos diferentes?
Estou tentando adicionar arquivos de dados do usuário a imagens para executar o cloud-init na inicialização. Depois de adicionar o arquivo de dados do usuário, faço o hash da nova imagem para verificar se há alterações. No momento, estou tendo um problema em que o arquivo tem um hash diferente a cada vez. Não tenho certeza de como isso pode ser.
Aqui estão os comandos que estou executando...
# I have a user-data file and ubuntu.img file
img_name="ubuntu-1.img"
sudo cp ubuntu.img "${img_name}"
sudo losetup --partscan /dev/loop0 "${img_name}"
sudo mount /dev/loop0p1 /mnt/boot
sudo cp user-data /mnt/boot
sudo umount /mnt/boot
sudo losetup --detach /dev/loop0
img_name="ubuntu-2.img"
# repeat above setups using ubuntu-2.img
Os relatórios em execução cmp ubuntu-1.img ubuntu-2.img
mostram uma diferença e não sei por quê.
Alguém tem alguma ideia?
Posso montar manualmente um arquivo de imagem (contendo um sistema de arquivos válido) com:
vnconfig vnd0 file.img
mount /dev/vnd0c /mnt/
Pergunta : Onde devo colocar o vnconfig
comando no OpenBSD?
Atualizei fstab
para ter a montaria, mas vnconfig
ainda é um mistério. Onde devo colocá-la? Em um script de inicialização?
Tenho dois sistemas rodando no Ubuntu 22.04. Quero montar um dos discos do servidor (PC1 - auerbach) no cliente (PC2 - hubel) usando NFS.
O /etc/exports
arquivo no PC1 se parece com o seguinte:
/media/auerbach-data 139.124.148.0/25(rw,no_subtree_check,sync,fsid=001)
Eu rodei sudo exportfs -av
no PC1 que funciona. O /etc/fstab
arquivo no PC2 parece com o seguinte:
auerbach:/media/auerbach-data /mnt/auerbach-data nfs defaults,auto,rw 0 0
Entretanto, quando executo sudo mount /mnt/auerbach-data -v
no PC2, recebo a mensagem de erro:
mount.nfs: timeout set for Thu Nov 28 10:44:02 2024
mount.nfs: trying text-based options 'vers=4.2,addr=139.124.148.27,clientaddr=139.124.148.5'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out
O que é realmente estranho é que quando executo showmount -e
no PC1, obtenho:
Export list for PC1:
/media/auerbach-data 139.124.148.0/25
Então parece que a exportação em si funciona. E quando eu executo showmount, eu obtenho:
Hosts on PC1:
PC2’s ip
O que parece indicar que PC1 vê PC2. Além disso, quando eu executo showmount -e auerbach
em PC2, eu obtenho:
Export list for auerbach:
/media/auerbach-data 139.124.148.0/25
Depois de um pouco de pesquisa para corrigir o problema, usei tcpdump -i eno145 host auerbach
e descobri que ao executar o mount
comando no PC2, o PC1 não recebeu nenhuma informação pela rede. Este não é o caso quando eu ping
PC1 ou uso showmount
. Alguns dos logs estão listados abaixo:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eno145, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:52:29.203855 IP hubel.836 > auerbach.nfs: Flags [S], seq 3035191773, win 64240, options [mss 1460,sackOK,TS val 3
448551700 ecr 0,nop,wscale 7], length 0
10:52:30.244579 IP hubel.836 > auerbach.nfs: Flags [S], seq 3035191773, win 64240, options [mss 1460,sackOK,TS val 3
448552741 ecr 0,nop,wscale 7], length 0
Alguém sabe como eu poderia resolver esse problema? Agradeço antecipadamente!
Informações adicionais:
Não há Firewall ativado auerbach
e a porta 2049 está aberta (verificado com telnet
).
Quando eu uso sudo mount -t nfs auerbach:/media/auerbach-data /mnt/auerbach-data -v
, eu obtenho:
mount.nfs: timeout set for Thu Nov 28 16:53:57 2024
mount.nfs: trying text-based options 'vers=4.2,addr=139.124.148.27,clientaddr=139.124.148.79'
Preciso confirmar que nenhuma parte de um disco está montada antes de sobrescrever o disco inteiro . O problema aqui é que parece que você tem que saber os nomes de quaisquer sistemas de arquivos no disco antes de verificá-los individualmente, e isso pode ser difícil em geral.
Por exemplo, o sistema no qual estou escrevendo isso tem um SSD e parted -l
mostra esse disco como /dev/nvme0n1
, tamanho 500G. /dev/block
mostra:
lrwxrwxrwx 1 root root 10 Nov 18 12:37 259:0 -> ../nvme0n1
lrwxrwxrwx 1 root root 12 Nov 18 12:37 259:1 -> ../nvme0n1p1
lrwxrwxrwx 1 root root 12 Nov 18 12:37 259:2 -> ../nvme0n1p2
O número menor 0 é então o 'disco inteiro', enquanto 1 é a partição de boot e 2 é a partição de swap. Este SSD é configurado para LVM, mas os dispositivos LVM têm /dev/mapper
nomes completamente diferentes.
A palavra nvme0n1
não aparece em lugar nenhum quando você verifica sistemas de arquivos montados ( mount
, findmnt nvme0n1
, /proc/mounts
, /etc/mtab
). A palavra nvme0n1p1
aparece , mas apenas porque é uma partição de inicialização montada ( /boot/efi
). Em geral, o disco que estou olhando pode não ter uma partição de inicialização, então procurar por nvme0n1
como prefixo pode não ser útil (e mesmo se eu encontrasse uma palavra com o prefixo correto, tenho garantia de que ela está na mesma unidade?)
Existe alguma maneira genérica de descobrir se um disco está 'em uso'? Neste caso em particular, posso analisar a lsblk
saída para encontrar os /dev/mapper
nomes em nvme0n1
, mas isso não parece ser uma boa solução a longo prazo.
Atualmente estou reconstruindo um sistema Linux, migrando para uma nova distribuição (Ubuntu 24.04).
Tenho um disco que contém vários terabytes de dados de usuário, que desejo manter. O disco contém um sistema de arquivos btrfs com snapshots somente leitura, o que limita minhas opções quando se trata de adaptar o conteúdo do disco (não consigo alterar facilmente os snapshots somente leitura).
Agora, a nova distribuição Linux, por padrão, vem com alguns grupos que têm IDs começando em 1000 e que têm permissões no sistema. No entanto, eles são idênticos aos IDs de grupo que usei na minha antiga instalação e que têm permissões no sistema de arquivos btrfs. Devido aos snapshots somente leitura, não consigo atualizar facilmente os IDs de grupo nos dados do usuário.
Me indicaram montarias mapeadas por ID, mas não há instruções úteis sobre como usá-las.
Posso mapear o sistema de arquivos de tal forma que o gid 1000 do sistema de arquivos corresponda a, digamos, o gid 1024 do sistema? Como eu inseriria isso em /etc/fstab para que o sistema de arquivos seja montado na inicialização?
Usando unshare -Umr
eu criei um novo usuário, mount namespaces onde o processo de chamada é movido. Então via mount -t tmpfs tmpfs /
eu montei uma nova instância tmpfs na raiz /
da árvore de diretórios dentro do novo mount namespace.
Como o tmpfs
está vazio, eu esperaria ver uma lista vazia do comando ls -la /
, no entanto, aqui está a saída:
ubuntu@ubuntu:~$ unshare -Umr /bin/bash
root@ubuntu:~# mount -t tmpfs tmpfs /
root@ubuntu:~# ls -la /
total 5309704
drwxr-xr-x 24 nobody nogroup 4096 Nov 22 2023 .
drwxrwxrwt 2 root root 40 Nov 11 15:47 ..
drwxr-xr-x 2 nobody nogroup 4096 Jan 25 2023 bin
drwxr-xr-x 3 nobody nogroup 4096 Jan 25 2023 boot
drwxr-xr-x 2 nobody nogroup 4096 Nov 11 2019 cdrom
drwxr-xr-x 17 nobody nogroup 3820 Aug 22 14:22 dev
drwxr-xr-x 105 nobody nogroup 4096 Mar 14 2024 etc
-rw-r--r-- 1 root root 1688371200 Jan 19 2021 GISO
drwxr-xr-x 3 nobody nogroup 4096 Nov 11 2019 home
lrwxrwxrwx 1 nobody nogroup 34 Jan 25 2023 initrd.img -> boot/initrd.img-4.15.0-202-generic
lrwxrwxrwx 1 nobody nogroup 34 Jan 25 2023 initrd.img.old -> boot/initrd.img-4.15.0-132-generic
drwxr-xr-x 21 nobody nogroup 4096 Jan 25 2023 lib
drwxr-xr-x 2 nobody nogroup 4096 Jan 25 2023 lib64
drwx------ 2 nobody nogroup 16384 Nov 11 2019 lost+found
drwxr-xr-x 2 nobody nogroup 4096 Feb 10 2021 media
drwxr-xr-x 2 nobody nogroup 4096 Aug 5 2019 mnt
drwxr-xr-x 3 nobody nogroup 4096 Nov 26 2020 opt
dr-xr-xr-x 123 nobody nogroup 0 Aug 22 12:22 proc
drwx------ 4 nobody nogroup 4096 Dec 6 2023 root
drwxr-xr-x 24 nobody nogroup 820 Nov 11 15:20 run
drwxr-xr-x 2 nobody nogroup 12288 Jan 25 2023 sbin
drwxr-xr-x 4 nobody nogroup 4096 Nov 11 2019 snap
drwxr-xr-x 3 nobody nogroup 4096 Jan 24 2020 srv
-rw------- 1 nobody nogroup 3748659200 Nov 11 2019 swap.img
dr-xr-xr-x 13 nobody nogroup 0 Nov 11 15:40 sys
drwxrwxrwt 10 nobody nogroup 4096 Nov 11 15:42 tmp
drwxr-xr-x 10 nobody nogroup 4096 Aug 5 2019 usr
drwxr-xr-x 13 nobody nogroup 4096 Aug 5 2019 var
lrwxrwxrwx 1 nobody nogroup 31 Jan 25 2023 vmlinuz -> boot/vmlinuz-4.15.0-202-generic
lrwxrwxrwx 1 nobody nogroup 31 Jan 25 2023 vmlinuz.old -> boot/vmlinuz-4.15.0-132-generic
root@ubuntu:~#
como no sistema de arquivos montado como /
antes do tmpfs ser montado. Por que estou obtendo esse resultado?
Estou ciente de que unshare -m
cria um novo namespace de montagem movendo o processo que o executa para o novo namespace de montagem que está sendo criado.
Este último obtém uma cópia do namespace de montagem do pai. Na verdade, observe o seguinte
root@ubuntu:~# cat /proc/self/mountinfo
25 31 0:23 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
26 31 0:24 / /proc rw,nosuid,nodev,noexec,relatime shared:12 - proc proc rw
27 31 0:5 / /dev rw,nosuid,relatime shared:2 - devtmpfs udev rw,size=4008708k,nr_inodes=1002177,mode=755,inode64
28 27 0:25 / /dev/pts rw,nosuid,noexec,relatime shared:3 - devpts devpts rw,gid=5,mode=620,ptmxmode=000
29 31 0:26 / /run rw,nosuid,nodev,noexec,relatime shared:5 - tmpfs tmpfs rw,size=812844k,mode=755,inode64
31 1 8:2 / / rw,relatime shared:1 - ext4 /dev/sda2 rw
32 25 0:6 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime shared:8 - securityfs securityfs rw
33 27 0:28 / /dev/shm rw,nosuid,nodev shared:4 - tmpfs tmpfs rw,inode64
34 29 0:29 / /run/lock rw,nosuid,nodev,noexec,relatime shared:6 - tmpfs tmpfs rw,size=5120k,inode64
35 25 0:30 / /sys/fs/cgroup rw,nosuid,nodev,noexec,relatime shared:9 - cgroup2 cgroup2 rw,nsdelegate,memory_recursiveprot
36 25 0:31 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime shared:10 - pstore pstore rw
37 25 0:32 / /sys/fs/bpf rw,nosuid,nodev,noexec,relatime shared:11 - bpf bpf rw,mode=700
38 26 0:33 / /proc/sys/fs/binfmt_misc rw,relatime shared:13 - autofs systemd-1 rw,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=17383
39 27 0:20 / /dev/mqueue rw,nosuid,nodev,noexec,relatime shared:14 - mqueue mqueue rw
40 27 0:34 / /dev/hugepages rw,relatime shared:15 - hugetlbfs hugetlbfs rw,pagesize=2M
41 25 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime shared:16 - debugfs debugfs rw
42 25 0:12 / /sys/kernel/tracing rw,nosuid,nodev,noexec,relatime shared:17 - tracefs tracefs rw
---------------------------- output omitted ------------------------------------------
root@ubuntu:~#
root@ubuntu:~# unshare -m /bin/bash
root@ubuntu:~#
root@ubuntu:~# cat /proc/self/mountinfo
714 713 8:2 / / rw,relatime - ext4 /dev/sda2 rw
715 714 0:5 / /dev rw,nosuid,relatime - devtmpfs udev rw,size=4008708k,nr_inodes=1002177,mode=755,inode64
716 715 0:25 / /dev/pts rw,nosuid,noexec,relatime - devpts devpts rw,gid=5,mode=620,ptmxmode=000
719 715 0:28 / /dev/shm rw,nosuid,nodev - tmpfs tmpfs rw,inode64
720 715 0:20 / /dev/mqueue rw,nosuid,nodev,noexec,relatime - mqueue mqueue rw
725 715 0:34 / /dev/hugepages rw,relatime - hugetlbfs hugetlbfs rw,pagesize=2M
726 714 0:26 / /run rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=812844k,mode=755,inode64
739 726 0:29 / /run/lock rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=5120k,inode64
740 726 0:36 / /run/credentials/systemd-sysusers.service ro,nosuid,nodev,noexec,relatime - ramfs none rw,mode=700
741 726 0:26 /snapd/ns /run/snapd/ns rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=812844k,mode=755,inode64
742 726 0:26 /netns /run/netns rw,nosuid,nodev,noexec,relatime - tmpfs tmpfs rw,size=812844k,mode=755,inode64
743 726 0:46 / /run/user/1000 rw,nosuid,nodev,relatime - tmpfs tmpfs rw,size=812840k,nr_inodes=203210,mode=700,uid=1000,gid=1000,inode64
744 714 0:23 / /sys rw,nosuid,nodev,noexec,relatime - sysfs sysfs rw
745 744 0:6 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime - securityfs securityfs rw
746 744 0:30 / /sys/fs/cgroup rw,nosuid,nodev,noexec,relatime - cgroup2 cgroup2 rw,nsdelegate,memory_recursiveprot
747 744 0:31 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime - pstore pstore rw
748 744 0:32 / /sys/fs/bpf rw,nosuid,nodev,noexec,relatime - bpf bpf rw,mode=700
814 744 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime - debugfs debugfs rw
815 744 0:12 / /sys/kernel/tracing rw,nosuid,nodev,noexec,relatime - tracefs tracefs rw
---------------------------- output omitted ------------------------------------------
root@ubuntu:~#
As saídas são ligeiramente diferentes, embora as dependências pai-filho do ponto de montagem sejam as mesmas ( Ids
são esperadas diferenças nas duas primeiras colunas, pois os namespaces de montagem não são os mesmos).
Agora a questão é: há uma razão por trás da ordem diferente em que os pontos de montagem são realmente mostrados?