AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-589943

melonfsck's questions

Martin Hope
melonfsck - she her
Asked: 2024-10-05 19:22:30 +0800 CST

Por que a exceção na interrupção sempre leva ao Kernel Panic?

  • 10

Se uma exceção de CPU no kernel, como acesso ruim à memória ou opcode inválido, acontecer no contexto de manutenção de um processo de usuário (como syscall ou page-in), ou em um kthreadprocesso, então, até que panic_on_oopsseja definido, informações úteis serão despejadas e a tarefa simplesmente morrerá. Sem pânico. Às vezes, o sistema permanece absolutamente utilizável. O suficiente para o usuário tentar sincronizar seus discos, encerrar programas graciosamente e, de outras maneiras, se preparar para a reinicialização de emergência.

Mas infelizmente, se a exceção acontece em contexto atômico (como interrupção ou softirq), a ação tomada é sempre Kernel Panic (com descrição "Fatal exception in interrupt") — independentemente de quaisquer configurações ou configurações de tempo de compilação. É triste. Por que não é possível simular um retorno de interrupção e manter o sistema funcionando na esperança de que algumas partes ainda funcionem? Obrigado.

Eu sei que posso colocar um infinito mdelay()no caminho do código de "exceção em interrupção" em vez de panic(), para apenas paralisar a CPU local. Mas geralmente não há muita coisa que possa ser feita depois que isso acontece... Mesmo que haja centenas de CPUs na máquina, todas elas logo travam. Então não é muito útil.

process
  • 2 respostas
  • 68 Views
Martin Hope
melonfsck - she her
Asked: 2024-09-17 06:08:20 +0800 CST

Por que "cat | wc -c" mostra um tamanho diferente de "ls -l" para um arquivo específico?

  • 9

A distro é Ubuntu 22.04 e estou executando um ext4sistema de arquivos recém-criado para o qual copiei minha configuração (usando rsync em uma máquina diferente). Eu estava executando um teste de desempenho de sistema de arquivos escrito manualmente (python), que funcionou normalmente em máquinas diferentes. Absolutamente acidentalmente, descobri algum tipo de comportamento incorreto em wc(ou ls) que se manifesta apenas para um arquivo específico no meu sistema - até onde descobri agora - /usr/bin/pkexec. Se isso estiver relacionado, a caixa está executando a versão oficial do coreutils do Ubuntu 8.32-4.

Este é um exemplo da ação que estou falando para qualquer arquivo diferente:

$ ls -l /usr/bin/top
-rwxr-xr-x 1 root root 379389 Jun 11 12:04 /usr/bin/top
$ cat /usr/bin/top | wc -c
379389
$

Observe o tamanho mostrado por ls e wc. É o mesmo.

Agora, há um arquivo /usr/bin/pkexec. Que é, de acordo com a página do manual,

      pkexec - Execute a command as another user

Isso acontece com ele

$ ls -l /usr/bin/pkexec
-rwsr-xr-x 1 root root 519851 Jun  11 12:04 /usr/bin/pkexec
$ cat /usr/bin/pkexec | wc -c
32145
$

O tamanho é diferente. Bem diferente.
Pensei que estivesse relacionado a alguma corrupção do sistema de arquivos, e executei o fsck no modo de recuperação. Nada mudou.
Então levei o disco para a máquina onde o rsync foi feito originalmente. (Ele está executando o Arch Linux). Montei a partição raiz do Ubuntu lá. Uau!

# ls -l /mnt/disk/usr/bin/pkexec
-rwsr-xr-x 1 root root 519851 Jun  11 12:04 /mnt/disk/usr/bin/pkexec
# cat /mnt/disk/usr/bin/pkexec | wc -c
519851
#

Aqui os tamanhos são mostrados iguais. Não entendi. Tenho uma caixa Ubuntu diferente com a mesma versão onde as informações sobre o arquivo acima são estas:

$ ls -l /usr/bin/pkexec
-rwsr-xr-x 1 root root 32145 Jul  26 14:45 /usr/bin/pkexec
$ cat /usr/bin/pkexec | wc -c
32145
$

O tamanho corresponde aqui. E vejo que o tamanho correto para este arquivo nesta versão do Ubuntu é "32145". Mas na primeira máquina vejo tamanhos que nem correspondem entre si em wce ls. Eu tinha essas explicações possivelmente

  • As máquinas tinham atualizações diferentes instaladas. Mas por que os tamanhos mostrados são diferentes entre os utilitários?
  • Isso é algum tipo de proteção de tempo de execução para esse /usr/bin/pkexecarquivo binário, pois vejo que ele é SUID - talvez o SO esteja protegendo-o mostrando dados incorretos aos usuários? Mas por que esse comportamento é visto apenas em uma máquina e não nas outras?

Obrigado pela ajuda e explicações. Acho que não entendi algo importante sobre Linux.

PS O problema também existe se eu ler dir "/usr/bin" em algumas linguagens como Python, e recuperar metadados de arquivos. Então eu leio cada arquivo e verifico o comprimento do resultado. Com pkexec- em metadados é 519851 bytes. Mas se eu ler o arquivo, é muito menor - apenas 32145 bytes. Obrigado.

ubuntu
  • 1 respostas
  • 88 Views
Martin Hope
melonfsck
Asked: 2024-06-30 20:16:09 +0800 CST

Como restabelecer um snapshot DM invalidado?

  • 5

Estou usando instantâneos do mapeador de dispositivos.

Vamos supor que esse /dev/sdaseja o dispositivo de origem somente leitura e /dev/sdbseja o dispositivo COW. Criei um instantâneo persistente desta forma:

# cat /dev/zero > /dev/sdb
# dmsetup create mysnap
0 1000000000 snapshot /dev/sda /dev/sdb P 16
^D
# ls /dev/mapper/
control    mysnap
#

Funcionou bem por um tempo.

Após cada inicialização, para anexar novamente meu instantâneo persistente, eu estava executando o mesmo comando:

dmsetup create mysnap
0 1000000000 snapshot /dev/sda /dev/sdb P 16

Mas um dia desconectei acidentalmente o dispositivo de origem somente leitura durante a operação (o dispositivo COW ainda estava lá). Havia uma mensagem do kernel como essa:

device-mapper: snapshots: Invalidating snapshot: error reading/writing

Depois que isso aconteceu, qualquer tentativa de anexar o instantâneo (em qualquer máquina) resulta em erro:

device-mapper: snapshots: Snapshot is marked invalid

O mysnapdispositivo é criado, mas recusa qualquer leitura/gravação com "Erro de entrada/saída".

É possível limpar o status “inválido” no instantâneo do DM e ativá-lo, ou pelo menos recuperar os dados?
Acredito que esse status "inválido" seja totalmente artificial porque, pela minha experiência, os instantâneos DM persistentes sobreviveram a falhas totais do sistema.

disk
  • 1 respostas
  • 28 Views
Martin Hope
melonfsck
Asked: 2024-06-01 21:30:09 +0800 CST

erro de divisão nvidiafb (GT710)

  • 5

Não preciso de “ajuda” para inserir nouveauou instalar drivers proprietários. A questão é sobre nvidiafb. Obrigado.


Estou usando a GPU nvidia GT710 no Linux 6.9-rc2. Eu queria usar o nvidiafbdriver simples para minha GPU antiga. Nesse sistema, só preciso do framebuffer, nada mais (sem DRI). Mas nvidiafbnão funciona, trava.

# modprobe nvidiafb
Killed
#
nvidiafb: Device ID: 10de1287
Console: switching to colour dummy device 80x25
nvidiafb 0000:03:00.0: vgaarb: deactivate vga console
nvidiafb: CRTC0 analog not found
nvidiafb: CRTC1 analog not found                            
nvidiafb: Unable to detect display type...
...Using default of CRT
nvidiafb: Unable to detect which CRTCNumber...
...Defaulting to CRTCNumber 0                               
nvidiafb: Using CRT on CRTC 0                               
fbcon: NV28 (fb0) is primary device

divide error: 0000 [#1] PREEMPT_RT SMP                     
CPU: 0 PID: 194915 Comm: modprobe Tainted: G           OE      6.9.0-rc2-home-rt+ #3                                                                    Hardware name: OEM X79G/X79G, BIOS 4.6.5 08/02/2022
RIP: 0010:nvGetClocks+0x18f/0x290 [nvidiafb]
Code: 0f 84 91 00 00 00 3d 30 03 00 00 0f 84 86 00 00 00 41 8b 89 04 05 00 00 0f b6 c5 44 0f b6 c9 c1 e9 10 0f af c2 31 d2 83 e1 0f <41> f7 f1 d3 e8 89 06 48 8b 87 a8 12 00 00 8b 88 00 05 00 00 0f b6
RSP: 0018:ffffa681b17e74e0 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffff921541eb4518 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffa681b17e7520 RDI: ffff921541eb4420
RBP: ffffa681b17e74e8 R08: ffffa681b17e7524 R09: 0000000000000000                                                                                           R10: ffff921541eb4420 R11: 00000000002e18c8 R12: 0000000000000020                                                                                           R13: 0000000000000008 R14: 0000000000000008 R15: 0000000000000068
FS:  00007fa3af639c40(0000) GS:ffff922406200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f2f8401f000 CR3: 00000010275bc001 CR4: 00000000001706f0
Call Trace:
<TASK>
  ? show_regs+0x6b/0x80
  ? __die_body+0x24/0x70
  ? die+0x42/0x70
  ? do_trap+0xde/0x100
  ? do_error_trap+0x73/0xa0
  ? nvGetClocks+0x18f/0x290 [nvidiafb]
  ? exc_divide_error+0x3f/0x60
  ? nvGetClocks+0x18f/0x290 [nvidiafb]
  ? asm_exc_divide_error+0x1f/0x30
  ? nvGetClocks+0x18f/0x290 [nvidiafb]
  NVCalcStateExt+0x1da/0x9b0 [nvidiafb]
  ? set_inverse_trans_unicode+0xd0/0x100
  ? kmalloc_trace+0xac/0x280
  nvidiafb_set_par+0x4a3/0xa40 [nvidiafb]
  fbcon_init+0x2af/0x600                                       
  visual_init+0xf2/0x190                                       
  do_bind_con_driver+0x1d2/0x4a0  
  do_take_over_console+0x144/0x240
  ? vprintk_default+0x21/0x30
  do_fbcon_takeover+0x78/0x130                               
  do_fb_registered+0x139/0x270
  fbcon_fb_registered+0x3b/0x90                              
  ? fb_add_videomode+0x81/0xf0
  register_framebuffer+0x20a/0x300                           
  nvidiafb_probe+0x6a4/0xad0 [nvidiafb]
  ? rt_spin_unlock+0x1c/0x50                                
  local_pci_probe+0x4f/0xb0
  pci_device_probe+0xcc/0x280
  really_probe+0xff/0x390
  __driver_probe_device+0x8a/0x170
  driver_probe_device+0x23/0xb0
  __driver_attach+0xc9/0x190                                 
  ? __pfx___driver_attach+0x10/0x10
  bus_for_each_dev+0x80/0xd0                                 
  driver_attach+0x22/0x30
  bus_add_driver+0x123/0x230
  driver_register+0x68/0x130
  ? __pfx_nvidiafb_init+0x10/0x10 [nvidiafb]
  __pci_register_driver+0x6e/0x80                             
  nvidiafb_init+0x37/0x50 [nvidiafb]                         
  do_one_initcall+0x4c/0x310                                 
  ? do_init_module+0x28/0x270                                
  ? kmalloc_trace+0xac/0x280
  do_init_module+0x6a/0x270                                  
  load_module+0x221b/0x22e0
  init_module_from_file+0x9c/0xe0                            
  ? init_module_from_file+0x9c/0xe0                        
  idempotent_init_module+0x173/0x230                         
  __x64_sys_finit_module+0x61/0xc0                           
  do_syscall_64+0x79/0x120                                 
  ? ksys_mmap_pgoff+0x11c/0x260                              
  ? syscall_exit_to_user_mode+0x87/0x1c0
  ? do_syscall_64+0x85/0x120                                 
  ? do_syscall_64+0x85/0x120
  entry_SYSCALL_64_after_hwframe+0x71/0x79
RIP: 0033:0x7fa3af75988d
Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 73 b5 0f 00 f7 d8 64 89 01 48                                                      RSP: 002b:00007ffe8864c978 EFLAGS: 00000246 ORIG_RAX: 0000000000000139                                                                                      RAX: ffffffffffffffda RBX: 0000563b56dcbf80 RCX: 00007fa3af75988d                                                                                           RDX: 0000000000000000 RSI: 0000563b56dbacd2 RDI: 0000000000000005                                                                                           RBP: 0000000000040000 R08: 0000000000000000 R09: 0000000000000002                                                                                            R10: 0000000000000005 R11: 0000000000000246 R12: 0000563b56dbacd2                                                                                           R13: 0000563b56dcc1b0 R14: 0000563b56dcc950 R15: 0000563b56dc5110                                                                                            
</TASK>                                                    Modules linked in: nvidiafb(+) vgastate fb_ddc vmnet(OE) vmw_vsock_vmci_transport vsock vmw_vmci vmmon(OE) ip6t_REJECT nf_reject_ipv6 ip6t_rt ipt_REJECT nf_reject_ipv4 xt_recent nft_limit xt_limit xt_addrtype xt_tcpudp xt_pkttype nft_chain_nat xt_MASQUERADE xt_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables nfnetlink binfmt_misc intel_rapl_msr intel_rapl_common sb_edac x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel snd_hda_codec_realtek snd_hda_codec_generic snd_hda_scodec_component snd_hda_codec_hdmi nls_iso8859_1 snd_hda_intel snd_intel_dspcfg input_leds snd_intel_sdw_acpi kvm joydev snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq rapl snd_seq_device intel_cstate snd_timer serio_raw pcspkr snd ioatdma soundcore dca mac_hid sch_fq_codel dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua parport_pc ppdev lp parport efi_pstore ip_tables x_tables autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy
  async_pq async_xor async_tx raid1 raid0 gpu_sched drm_gpuvm drm_exec mxm_wmi video wmi i2c_algo_bit drm_ttm_helper ttm drm_display_helper cec rc_core drm_kms_helper cdc_ether usbnet drm hid_generic psmouse r8152 usbhid crct10dif_pclmul crc32_pclmul uas ghash_clmulni_intel sha512_ssse3 usb_storage hid sha256_ssse3 ahci sha1_ssse3 mii r8169 i2c_i801 libahci lpc_ich i2c_smbus realtek aesni_intel crypto_simd cryptd
---[ end trace 0000000000000000 ]---                       
RIP: 0010:nvGetClocks+0x18f/0x290 [nvidiafb]
Code: 0f 84 91 00 00 00 3d 30 03 00 00 0f 84 86 00 00 00 41 8b 89 04 05 00 00 0f b6 c5 44 0f b6 c9 c1 e9 10 0f af c2 31 d2 83 e1 0f <41> f7 f1 d3 e8 89 06 48 8b 87 a8 12 00 00 8b 88 00 05 00 00 0f b6                                                     
RSP: 0018:ffffa681b17e74e0 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffff921541eb4518 RCX: 0000000000000000                                                                                          RDX: 0000000000000000 RSI: ffffa681b17e7520 RDI: ffff921541eb4420                                                                                          
RBP: ffffa681b17e74e8 R08: ffffa681b17e7524 R09: 0000000000000000
R10: ffff921541eb4420 R11: 00000000002e18c8 R12: 0000000000000020                                                                                           
R13: 0000000000000008 R14: 0000000000000008 R15: 0000000000000068                                                                                         
FS:  00007fa3af639c40(0000) GS:ffff922406200000(0000) knlGS:0000000000000000                                                                                
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f2f8401f000 CR3: 00000010275bc001 CR4: 00000000001706f0

note: modprobe[194915] exited with preempt_count 2

Qual é o problema exato que impede que ele funcione corretamente com minha GPU? A divisão em nvGetClocks+0x18f/0x290está em video/fbdev/nvidia/nv_hw.c, provavelmente aqui (linha 213) . Como a parte divisora ​​da divisão acaba sendo zero, com esta GPU específica (não as outras, mais antigas)?

Obrigado.

kernel
  • 1 respostas
  • 92 Views
Martin Hope
melonfsck
Asked: 2024-05-24 22:32:36 +0800 CST

Xorg FBDEV se recusa a usar o framebuffer especificado

  • 5

Estou usando o Xorg com o FBDEVdriver, configuração:

Section "Device"
    Identifier "Device0"
    Driver "fbdev"
    Option "fbdev" "/dev/fb0"
    Option "ShadowFB" "false"
EndSection

Eu tenho um novo dispositivo framebuffer no meu sistema, é /dev/fb1. Eu ajustei a configuração:

Section "Device"
    Identifier "Device0"
    Driver "fbdev"
    Option "fbdev" "/dev/fb1"
    Option "ShadowFB" "false"
EndSection

Mas não funciona, ainda usa /dev/fb0, e nem abre /dev/fb1. Estou usando um sistema operacional baseado em Ubuntu (baseado em Jammy) com xserver-xorg-video-fbdevpacote instalado. Tudo funciona se eu fizer

mount --bind /dev/fb1 /dev/fb0

Mas não é uma opção porque quero ter acesso a ambos os framebuffers (foi o que fiz umount /dev/fb0para desfazer).
Obrigado por qualquer ajuda

x11
  • 1 respostas
  • 16 Views
Martin Hope
melonfsck
Asked: 2024-04-05 04:19:47 +0800 CST

Como compilar Linux para x86_64 com tamanho de página diferente de 4096?

  • 6

Eu estava tentando compilar o kernel Linux x64 com tamanho de página maior que 4096. É necessário montar sistemas de arquivos com tamanho de bloco alto via VFS. Em outras arquiteturas eu poderia selecionar o tamanho da página usando a configuração do kernel. Não funciona em x86_64. É possível alterar o tamanho da página em x86_64? Tentei aumentar PAGE_SHIFT para 16 pol arch/x86/include/asm/page_types.h, mas só causou erros.

Se for possível construir com um tamanho de página diferente em x86_64, quais tamanhos de página são suportados e qual é a configuração correta?

linux-kernel
  • 1 respostas
  • 30 Views
Martin Hope
melonfsck
Asked: 2024-03-19 01:32:56 +0800 CST

É seguro gravar diretamente nas extensões do arquivo enquanto o FS é r/w?

  • 6

Dado qualquer arquivo em um sistema de arquivos ext4, é possível (usando filefrag -v) obter a lista de deslocamentos + comprimentos reais onde esse arquivo está localizado no dispositivo de bloco subjacente.

É seguro abrir o dispositivo e gravar neles, tudo isso enquanto o sistema de arquivos está montado para leitura e gravação? Isso pode causar corrupção no FS? Estou perguntando porque vou implementar um loopdriver alternativo, que irá ignorar completamente a camada do sistema de arquivos, tendo portanto um desempenho muito melhor.

Se bem me lembro, swapfile é implementado exatamente dessa maneira. Por favor, corrija-me se disser algo errado.
A resposta depende do sistema de arquivos? O que pode acontecer se o arquivo for excluído repentinamente e essas compensações forem reutilizadas para alguns metadados ?
Finalmente, existe uma maneira de impedir que um arquivo seja realocado e4defragou algo semelhante? Qual é a melhor maneira de evitar que um arquivo seja excluído (estando no espaço do kernel)? Existem alguns componentes internos do kernel que posso usar para obter a lista de extensões de arquivos?

filesystems
  • 1 respostas
  • 40 Views
Martin Hope
melonfsck
Asked: 2024-03-15 03:51:48 +0800 CST

Por que um sistema de arquivos está desmontado, mas ainda está em uso?

  • 8

Eu uso sistemas de arquivos ext4 há muito tempo e é a primeira vez que vejo um comportamento estranho do sistema de arquivos ext4.
Há um sistema de arquivos ext4 em /dev/dm-2
Um erro de E/S ocorreu no dispositivo subjacente e o sistema de arquivos foi remontado somente leitura.
Está bem e esperado pela configuração.
Mas por alguma razão desconhecida, agora não é possível desmontar completamente o sistema de arquivos.
O comando umount /the/mount/pointretornou com sucesso. Outras execuções desse comando dizem "Não montado".
A entrada de montagem desapareceu da saída do mountcomando. O sistema de arquivos não está montado em nenhum outro lugar.
Mas.
Primeiro: não consigo ver o EXT4-fs: unmounting filesystemtexto normal no dmesg. Na verdade, não há nada no dmesg.
Segunda coisa (fala por si que algo está errado):

root# cat /proc/meminfo | grep dirty
Dirty:           9457728 kB
root# time sync

real    0m0.012s                                                                                
user    0m0.000s                                                                                
sys     0m0.002s
root# cat /proc/meminfo | grep dirty
Dirty:           9453632 kB

Terceira coisa: o diretório de depuração /sys/fs/ext4/dm-2ainda existe. Tentei escrever "1" na /sys/fs/ext4/dm-2/simulate_failesperança de que o sistema de arquivos fosse desativado. Mas não faz nada, não mostra nada no dmesg.
Finalmente, a quarta coisa que torna o dispositivo inutilizável:

root# e2fsck -fy /dev/dm-2
e2fsck 1.46.5 (30-Dec-2021)
/dev/dm-2 is in use.
e2fsck: Cannot continue, aborting.

Eu entendo que é possível reiniciar e etc. Esta questão não é sobre como resolver algum problema simples de novato. Quero que alguém com experiência em sistema de arquivos ext4 me ajude a entender o que pode causar esse comportamento.
O dm-2dispositivo não está montado em nenhum outro lugar, não está montado em bind, nem está sendo usado por mais nada.
Não havia mais nada usando o Dirty Cache no momento de medi-lo com cat /proc/meminfo | grep dirty.
A chamada de desmontagem bem-sucedida não foi MNT_DETACH(nenhum -lsinalizador foi usado). Apesar disso, teve sucesso quase imediatamente (é estranho). O ponto de montagem não está mais montado: mas como descrevi acima, pode ser facilmente visto que o sistema de arquivos NÃO está desmontado.

Atualização: como AB apontou, tentei verificar se o sistema de arquivos ainda está montado em um namespace diferente. Não o montei em um namespace diferente, então não esperava ver nada. Mas, surpreendentemente, ele foi montado em um namespace diferente, surpreendentemente este (nome de usuário alterado):

4026533177 mnt       1 3411291 an-unrelated-nonroot-user       xdg-dbus-proxy --args=43

Tentei entrar nesse namespace e desmontá-lo usando. nsenter -t 3411291 -m -- umount /the/mount/point
Resultou em falha de segmentação (núcleo despejado), e isso no dmesg

[970130.866738] Buffer I/O error on dev dm-2, logical block 0, lost sync page write
[970130.867925] EXT4-fs error (device dm-2): ext4_mb_release_inode_pa:4846: group 9239, free 2048, pa_free 4
[970130.870291] Buffer I/O error on dev dm-2, logical block 0, lost sync page write
[970130.949466] divide error: 0000 [#1] PREEMPT SMP PTI
[970130.950677] CPU: 49 PID: 4118804 Comm: umount Tainted: P        W  OE      6.1.68-missmika #1
[970130.953056] Hardware name: OEM X79G/X79G, BIOS 4.6.5 08/02/2022
[970130.953121] RIP: 0010:mb_update_avg_fragment_size+0x35/0x120
[970130.953121] Code: 41 54 53 4c 8b a7 98 03 00 00 41 f6 44 24 7c 80 0f 84 9a 00 00 00 8b 46 14 48 89 f3 85 c0 0f 84 8c 00 00 00 99 b9 ff ff ff ff <f7> 7e 18 0f bd c8 41 89 cd 41 83 ed 01 0f 88 ce 00 00 00 0f b6 47
[970130.957139] RSP: 0018:ffffb909e3123a28 EFLAGS: 00010202
[970130.957139] RAX: 000000000000082a RBX: ffff91140ac554d8 RCX: 00000000ffffffff
[970130.957139] RDX: 0000000000000000 RSI: ffff91140ac554d8 RDI: ffff910ead74f800
[970130.957139] RBP: ffffb909e3123a40 R08: 0000000000000000 R09: 0000000000004800
[970130.957139] R10: ffff910ead74f800 R11: ffff9114b7126000 R12: ffff910eb31d2000
[970130.957139] R13: 0000000000000007 R14: ffffb909e3123b80 R15: ffff911d732beffc
[970130.957139] FS:  00007f6d94ab4800(0000) GS:ffff911d7fcc0000(0000) knlGS:0000000000000000
[970130.957139] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[970130.957139] CR2: 00003d140602f000 CR3: 0000000365690002 CR4: 00000000001706e0
[970130.957139] Call Trace:
[970130.957139]  <TASK>
[970130.957139]  ? show_regs.cold+0x1a/0x1f
[970130.957139]  ? __die_body+0x24/0x70
[970130.957139]  ? __die+0x2f/0x3b
[970130.957139]  ? die+0x34/0x60
[970130.957139]  ? do_trap+0xdf/0x100
[970130.957139]  ? do_error_trap+0x73/0xa0
[970130.957139]  ? mb_update_avg_fragment_size+0x35/0x120
[970130.957139]  ? exc_divide_error+0x3f/0x60
[970130.957139]  ? mb_update_avg_fragment_size+0x35/0x120
[970130.957139]  ? asm_exc_divide_error+0x1f/0x30
[970130.957139]  ? mb_update_avg_fragment_size+0x35/0x120
[970130.957139]  ? mb_set_largest_free_order+0x11c/0x130
[970130.957139]  mb_free_blocks+0x24d/0x5e0
[970130.957139]  ? ext4_validate_block_bitmap.part.0+0x29/0x3e0
[970130.957139]  ? __getblk_gfp+0x33/0x3b0
[970130.957139]  ext4_mb_release_inode_pa.isra.0+0x12e/0x350
[970130.957139]  ext4_discard_preallocations+0x22e/0x490
[970130.957139]  ext4_clear_inode+0x31/0xb0
[970130.957139]  ext4_evict_inode+0xba/0x750
[970130.989137]  evict+0xd0/0x180
[970130.989137]  dispose_list+0x39/0x60
[970130.989137]  evict_inodes+0x18e/0x1a0
[970130.989137]  generic_shutdown_super+0x46/0x1b0
[970130.989137]  kill_block_super+0x2b/0x60
[970130.989137]  deactivate_locked_super+0x39/0x80
[970130.989137]  deactivate_super+0x46/0x50
[970130.989137]  cleanup_mnt+0x109/0x170
[970130.989137]  __cleanup_mnt+0x16/0x20
[970130.989137]  task_work_run+0x65/0xa0
[970130.989137]  exit_to_user_mode_prepare+0x152/0x170
[970130.989137]  syscall_exit_to_user_mode+0x2a/0x50
[970130.989137]  ? __x64_sys_umount+0x1a/0x30
[970130.989137]  do_syscall_64+0x6d/0x90
[970130.989137]  ? syscall_exit_to_user_mode+0x38/0x50
[970130.989137]  ? __x64_sys_newfstatat+0x22/0x30
[970130.989137]  ? do_syscall_64+0x6d/0x90
[970130.989137]  ? exit_to_user_mode_prepare+0x3d/0x170
[970130.989137]  ? syscall_exit_to_user_mode+0x38/0x50
[970130.989137]  ? __x64_sys_close+0x16/0x50
[970130.989137]  ? do_syscall_64+0x6d/0x90
[970130.989137]  ? exc_page_fault+0x8b/0x180
[970130.989137]  entry_SYSCALL_64_after_hwframe+0x64/0xce
[970130.989137] RIP: 0033:0x7f6d94925a3b
[970130.989137] Code: fb 43 0f 00 f7 d8 64 89 01 48 83 c8 ff c3 90 f3 0f 1e fa 31 f6 e9 05 00 00 00 0f 1f 44 00 00 f3 0f 1e fa b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 05 c3 0f 1f 40 00 48 8b 15 c1 43 0f 00 f7 d8
[970130.989137] RSP: 002b:00007ffdd60f7d08 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
[970130.989137] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00007f6d94925a3b
[970130.989137] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000055ca1c6f7d60
[970130.989137] RBP: 000055ca1c6f7b30 R08: 0000000000000000 R09: 00007ffdd60f6a90
[970130.989137] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[970130.989137] R13: 000055ca1c6f7d60 R14: 000055ca1c6f7c40 R15: 000055ca1c6f7b30
[970130.989137]  </TASK>
[970130.989137] Modules linked in: 88x2bu(OE) erofs dm_zero zram ext2 hfs hfsplus xfs kvdo(OE) dm_bufio mikasecfs(OE) simplefsplus(OE) melon(OE) mikatest(OE) iloveaki(OE) tls vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) ip6t_REJECT nf_reject_ipv6 ip6t_rt ipt_REJECT nf_reject_ipv4 xt_recent xt_tcpudp nft_limit xt_limit xt_addrtype xt_pkttype nft_chain_nat xt_MASQUERADE xt_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables binfmt_misc nfnetlink nvidia_uvm(POE) nvidia_drm(POE) intel_rapl_msr intel_rapl_common nvidia_modeset(POE) sb_edac nls_iso8859_1 x86_pkg_temp_thermal intel_powerclamp coretemp nvidia(POE) snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi cfg80211 joydev snd_hda_intel input_leds snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec kvm_intel snd_hda_core snd_hwdep kvm snd_pcm snd_seq_midi rapl snd_seq_midi_event snd_rawmidi intel_cstate serio_raw pcspkr snd_seq video wmi snd_seq_device snd_timer drm_kms_helper fb_sys_fops snd syscopyarea sysfillrect sysimgblt soundcore
[970130.989137]  ioatdma dca mac_hid sch_fq_codel dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua msr parport_pc ppdev lp parport drm efi_pstore ip_tables x_tables autofs4 raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid1 raid0 multipath linear crct10dif_pclmul hid_generic crc32_pclmul ghash_clmulni_intel sha512_ssse3 sha256_ssse3 sha1_ssse3 usbhid cdc_ether aesni_intel usbnet uas hid crypto_simd r8152 cryptd usb_storage mii psmouse ahci i2c_i801 r8169 lpc_ich libahci i2c_smbus realtek [last unloaded: 88x2bu(OE)]
[970131.024615] ---[ end trace 0000000000000000 ]---
[970131.203209] RIP: 0010:mb_update_avg_fragment_size+0x35/0x120
[970131.204344] Code: 41 54 53 4c 8b a7 98 03 00 00 41 f6 44 24 7c 80 0f 84 9a 00 00 00 8b 46 14 48 89 f3 85 c0 0f 84 8c 00 00 00 99 b9 ff ff ff ff <f7> 7e 18 0f bd c8 41 89 cd 41 83 ed 01 0f 88 ce 00 00 00 0f b6 47
[970131.207841] RSP: 0018:ffffb909e3123a28 EFLAGS: 00010202
[970131.209048] RAX: 000000000000082a RBX: ffff91140ac554d8 RCX: 00000000ffffffff
[970131.210284] RDX: 0000000000000000 RSI: ffff91140ac554d8 RDI: ffff910ead74f800
[970131.211512] RBP: ffffb909e3123a40 R08: 0000000000000000 R09: 0000000000004800
[970131.212749] R10: ffff910ead74f800 R11: ffff9114b7126000 R12: ffff910eb31d2000
[970131.213977] R13: 0000000000000007 R14: ffffb909e3123b80 R15: ffff911d732beffc
[970131.215181] FS:  00007f6d94ab4800(0000) GS:ffff911d7fcc0000(0000) knlGS:0000000000000000
[970131.216370] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[970131.217553] CR2: 00003d140602f000 CR3: 0000000365690002 CR4: 00000000001706e0
[970131.218740] note: umount[4118804] exited with preempt_count 1

A máquina ainda funciona, é possível sincronizar outros sistemas de arquivos:

root# sync -f /
root#

Mas não a sincronização global:

root# sync
(goes D state forever)

O cache sujo relacionado a esse sistema de arquivos fantasma não desapareceu, o sistema de arquivos ainda está "montado".
Qual pode ser a causa desses problemas?

filesystems
  • 1 respostas
  • 60 Views
Martin Hope
melonfsck
Asked: 2024-02-20 20:16:34 +0800 CST

Como o EXT4 lida com a súbita falta de espaço no armazenamento subjacente?

  • 10

Normalmente, os drivers de dispositivos de bloco informam o tamanho correto do dispositivo e é possível usar todos os blocos "disponíveis". Portanto, o sistema de arquivos sabe o quanto pode gravar nesse dispositivo anteriormente.
Mas em alguns casos especiais, como acontece com dispositivos dm-thinou dm-vdodispositivos, esta afirmação é falsa. Esse tipo de dispositivo de bloco pode retornar ENOSPCerro a qualquer momento, se seu armazenamento subjacente (sobre o qual o FS de nível superior nada sabe) ficar cheio.

Portanto, minha pergunta é: o que acontece nesse cenário: um sistema de arquivos EXT4 está montado r/w, no asyncmodo (que é o padrão), e está fazendo uma grande quantidade de gravações. O cache de disco (memória suja) também é envolvido e, no momento, há muitos dados a serem gravados se o usuário executar o synccomando.

Mas, de repente, o dispositivo de bloco subjacente desse sistema de arquivos EXT4 começa a recusar qualquer gravação devido a "não sobrar espaço". Qual será o comportamento do sistema de arquivos?
Ele imprimirá erros e entrará no r/omodo abortando todas as gravações e possivelmente causando perda de dados? Caso contrário, ele apenas esperará por espaço, repetindo periodicamente as gravações e recusando novas? Nesse caso, o que acontecerá com o enorme cache do disco, se outros processos tentarem alocar muita RAM? (No Linux, a memória suja é considerada Disponível, não é?).
Considerando o pior cenário, se o cache do disco estivesse ocupando a maior parte da RAM no momento do ENOSPCerro (porque o administrador configurouvm.dirty_ratiomuito alto), o kernel pode travar ou travar? Ou apenas fará com que todos os processos que desejam alocar memória esperem/travem? Finalmente, o comportamento difere entre os sistemas de arquivos?
Desde já, obrigado.

linux
  • 2 respostas
  • 353 Views
Martin Hope
melonfsck
Asked: 2024-01-29 05:51:08 +0800 CST

É possível restaurar dados de um instantâneo DM não persistente após uma falha?

  • 6

Costumo usar instantâneos de mapeador de dispositivos não persistentes. Uma tabela de exemplo é semelhante a esta:

0 10485760 snapshot /dev/sdc3 /dev/sdc6 N 16

Em caso de falha, ainda tenho os dois /dev/sdc3e /dev/sdc6porque os discos não são voláteis. Mas é possível recuperar esse snapshotdispositivo ou pelo menos recuperar as alterações de /dev/sdc6alguma forma? Eu sei que existem instantâneos persistentes para o meu propósito, mas ainda estou curioso. Obrigado.

crash
  • 1 respostas
  • 33 Views
Martin Hope
melonfsck
Asked: 2023-11-01 15:05:08 +0800 CST

Como fazer o Linux ler a tabela de partição em uma partição?

  • 5

Eu tenho um disco (particionado por GPT), por exemplo /dev/sda.

/dev/sda8é uma partição nesse disco. Usei o cfdiskutilitário para criar uma tabela GPT com poucas partições no formato /dev/sda8. Eu esperava que essas partições estivessem disponíveis através de algo como /dev/sda8p1. Mas o Linux não os reconheceu automaticamente.

Como faço para que o Linux reconheça partições em uma partição e automatize isso, se possível?

disk
  • 2 respostas
  • 68 Views
Martin Hope
melonfsck
Asked: 2023-10-26 05:38:05 +0800 CST

O uso da Remontagem de Emergência SysRQ é uma maneira aceitável de clonar o disco rígido?

  • 5

Estou usando Linux (Ubuntu) e me disseram que posso usar o método descrito abaixo para clonar o disco rígido do sistema para outro - para conectar em uma nova máquina. (Sem inicializar a partir de um Live CD)

Ele assume que o disco do sistema é /dev/sda, a partição montada como root é /dev/sda1e um disco vazio para cloná-lo é /dev/sdb.

echo u > /proc/sysrq-trigger Remonta todos os sistemas de arquivos, incluindo aquele montado como root somente leitura.

e2fsck -fy /dev/sda1 Corrige os erros do sistema de arquivos causados ​​ao forçar a remontagem do R/O.

dd if=/dev/sda of=/dev/sdbclona o disco para o vazio.

e2fsck -fy /dev/sdb1corrige o sistema de arquivos recém-clonado. Nesta etapa, geralmente informa sobre somas de verificação de blocos fixos.

reboot -f Reinicia o sistema. Nesta etapa, desconecto o disco recém-clonado e conecto-o a um novo PC.

Usei esse método duas vezes e todas as máquinas estão funcionando bem, mas temo que isso possa causar alguns problemas perigosos no sistema de arquivos. Se sim, por quê? E devo evitar usar esse método para clonar discos rígidos no futuro?

linux
  • 2 respostas
  • 54 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve