Suponha que eu conectei uma unidade USB ou um SSD nvme em um computador, como o computador sabe a quantidade total de setores que há na unidade? Quero dizer, o disco sabe disso sozinho? Se ele souber, ele simplesmente dirá ao computador? Preciso disso para um script que estou escrevendo, não posso importar nenhum pacote para o script, então preciso fazer isso da maneira bruta, uma abordagem que pensei é tentar gravar no disco e registrar o número de setores que falharam na gravação porque estão fora do limite.
james's questions
Estou fazendo um programa para mover o local da partição por diversão. Ele basicamente encontra a partição lendo o esquema de partição como GPT ou MBR, então ele lê um setor( 512B
) da partição e então grava no novo local. Mas por algum motivo esse processo é muito lento, na verdade essa unidade vai até 2 GB/s mas esse processo está conduzindo apenas a 700 KB/s. É porque eu deveria ler/gravar dados brutos maiores de uma vez e por quê? Existe algum outro truque que eu possa fazer para acelerar? Ele está testando em um HP P900 1TB Portable SSD
. Eu também editei o código para fazê-lo ler/gravar com 1 página SSD inteira que é 4096B
. O desempenho proliferou para 8Mb/s
mas isso ainda não está nem remotamente perto do desempenho que eu estou esperando. Então eu fiz ele mover 1 Gib por rodada, e ele foi capaz de atingir a velocidade de 1 Gib/S. Mas já que o tamanho da página do SSD é de apenas 4 KB por que haveria uma diferença em termos de desempenho entre r/w 4kib
de uma vez e 1gib
de uma vez?
Tenho um modelo base Razer Blade 15 (início de 2020) - RZ09-0328 que tem uma tela OLED 4K. Como é OLED, presumi que ele suporta HDR, na verdade o Windows sugeriu que ele suporta HDR também.
Mas quando o HDR do Windows é ativado, a tela inteira fica muito mais escura, e a cor branca nem é mais realmente branca, na verdade, é muito cinza.
Eu até tentei usar o arquivo de calibração de cores ICC criado pelo NotebookCheck , mas também não ajudou muito. Tanto o vídeo HDR quanto o vídeo SDR parecem não ser brilhantes o suficiente e não têm cor. A barra para alternar entre conteúdo HDR e conteúdo SDR no Windows está agindo de forma muito estranha, quando movo a barra, o brilho sobe e desce aleatoriamente, quando paro a barra, nada realmente mudou desde o início.
Observe que quando aplico #force-color-profile
, a parte branca do cromo pode ficar bem brilhante em HDR, mas a parte preta pode ficar desbotada (Por que isso aconteceria? Achei que o OLED pudesse controlar pixels individuais).
Por fim, o aplicativo de calibração HDR do Windows também não ajudou. O resultado é bem diferente quando faço o teste com brilho máximo e quando faço com brilho de 50%.
GDT
= Group Descriptor Table
; GD
= Group Descriptor
. Estou tentando descobrir quantos bytes preciso ler depois do superbloco para extrair o GDT
, porque é necessário para um programa que estou fazendo. Como sabemos, cada um GD
é 64B
, e cada grupo de blocos deve ter GD
, mas como há sinalizadores especiais como flex_bg
ou sparse_super
ou meta_bg
que farão com que haja menos GD
do que deveria haver. Nesse caso, como devo saber o comprimento de GDT
?
Eu fiz esse comando 2 PS para obter o tamanho exato do disco, mas o tamanho de um comando retornado é 10440 sector
menor que o outro ( 512B sector size
). Em qual devo confiar? Por que haveria uma diferença?
$ wmic diskdrive list brief
Caption DeviceID Model Partitions Size
KINGSTON SNV2S1000G \\.\PHYSICALDRIVE0 KINGSTON SNV2S1000G 3 1000202273280
USB SanDisk 3.2Gen1 USB Device \\.\PHYSICALDRIVE2 USB SanDisk 3.2Gen1 USB Device 1 61525094400
HP P900 1TB SCSI Disk Device \\.\PHYSICALDRIVE3 HP P900 1TB SCSI Disk Device 2 1024203640320
ACASIS EC-5351C SCSI Disk Device \\.\PHYSICALDRIVE1 ACASIS EC-5351C SCSI Disk Device 1 4000784417280
$ Get-Disk | Select-Object Number, Size
Number Size
------ ----
3 1024209543168
1 4000787030016
0 1000204886016
2 61530439680
Você vê que o primeiro comando me deu o tamanho de, 61525094400
mas o segundo me deu61530439680
Eu tenho um disco que está usando GPT, e há apenas 1 partição (Ext4) nele, de acordo com UEFI , a primeira 16 Bytes
delas GPT Partition Entry Array
deve ser a Partition Type GUID
. Então eu extraí minhas partições Partition Type GUID
e li a primeira 32 Digits
delas, já que está em formato hexadecimal. Então eu obtive o GUID af3dc60f838472478e793d69d8477de4
, depois de verificar com a lista na wikipedia, descobri que esse GUID em particular não significa nada. Então isso levantou a questão: Quem decide o tipo GUID e seu tipo correspondente? E há uma lista completa para o Tipo e seu GUID ou o meu simplesmente não existe? O GPT Partition Entry Array
com zeros finais cortados:
af3dc60f838472478e793d69d8477de4e18058ef52250344ba2f0ae31c057fa60008000000000000ffb7c0d10100000000000000000000006500780074003400740062
Como sabemos, o registro mestre de inicialização (MBR) começa com 440 bytes de código de inicialização. Pelo que li, ele inicia o processo de inicialização e carrega o carregador de inicialização do sistema operacional.
Mas para um disco rígido externo, que é usado apenas para armazenamento de arquivos e não é inicializável, por que ainda há código de inicialização?
Tenho um SSD HP P900 de 1 TB com um MBR, uma partição ext4 e uma partição exFAT . Todas as partições são apenas para armazenamento de arquivos e, novamente, elas não são inicializáveis, mas por que nos bytes brutos do MBR, ainda há código de inicialização? Aqui estão os bytes brutos do MBR inteiro em hexadecimal:
fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea007c0000ebfe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069d0e83000000020210083fec2ff000800000060f62400fec2ff07fec2ff0068f62400684552000000000000000000000000000000000000000000000000000000000000000055aa
Este é o código de inicialização:
fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea007c0000ebfe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Este é o código de inicialização em formato de bytes:
11111010 10111000 00000000 00010000 10001110 11010000 10111100 00000000 10110000 10111000 00000000 00000000 10001110 11011000 10001110 11000000 11111011 10111110 00000000 01111100 10111111 00000000 00000110 10111001 00000000 00000010 11110011 10100100 11101010 00100001 00000110 00000000 00000000 10111110 10111110 00000111 00111000 00000100 01110101 00001011 10000011 11000110 00010000 10000001 11111110 11111110 00000111 01110101 11110011 11101011 00010110 10110100 00000010 10110000 00000001 10111011 00000000 01111100 10110010 10000000 10001010 01110100 00000001 10001011 01001100 00000010 11001101 00010011 11101010 00000000 01111100 00000000 00000000 11101011 11111110 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Tenho um cabeçalho 512B que sei que é MBR ou um MBR falso como MBR protetor. Olhando para seus bytes brutos, como os identifico? Por exemplo
fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe
073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea00
7c0000ebfe000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000069d0e83000000020210083fec2ff00
0800000060f62400fec2ff07fec2ff0068f62400684552000000000000000000000000
000000000000000000000000000000000000000055aa
Eu estava usando o Ubuntu antes de decidir mudar para o Windows 11, então sou um novato nisso. Recentemente, instalei um aplicativo VPN, mas depois decidi que não o queria, então cliquei em desinstalar. Tudo o que o Windows fez foi executar uninstall.exe na pasta de arquivos de programa desse aplicativo, e esse aplicativo basicamente se removeu.
Mais tarde naquele dia, descobri que o aplicativo não foi removido completamente, o que foi indicado pelo servidor DNS que continuava mudando para um endereço IP estranho (o que fazia parte do trabalho daquele aplicativo VPN, e tenho quase certeza disso).
Então, existe uma maneira correta de desinstalar um APP no Windows 11 ou a única maneira correta é deixar o aplicativo se desinstalar sozinho?
Estou muito preocupado e frustrado porque percebi que deixar o APP desinstalar sozinho pode causar perigo potencial, por exemplo, malware pode deixar itens perigosos para trás intencionalmente. Além disso, por um longo período de tempo, pode haver uma quantidade substancial de aplicativos que foram desinstalados de forma impura, o que pode criar uma carga pesada para o sistema (se houver mil aplicativos não totalmente desinstalados, cada um deles pode deixar algumas ações/processos indesejados que acabariam drenando os recursos do sistema ao longo do ano e o sistema ficaria muito "lento").
Minha teoria está correta (se estiver, isso também acontece com outros sistemas operacionais, como o MacOS?); existe uma maneira melhor/correta de desinstalação?
Estou tendo dificuldades para conciliar esta página da Samsung RAM e a ideia de que a RAM é supostamente muito mais rápida do que qualquer SSD ou HDD.
A página diz que a RAM DDR4 pode transferir dados a 2666 Mbps, o que é muito mais lento do que os SSDs supostamente conseguem transferir dados.
O que estou entendendo errado?
Encontrei esses 2 conectores/pinos extras não soldados na minha placa-mãe e estou tentando descobrir o que são.
Na primeira imagem, há um conector tipo matriz principal no meio, e há conectores de alimentação de energia periféricos (os de 2 pinos) perto dele. É um conector eMMC ou o que é?
A segunda imagem mostra um conector de 25x2 pinos que já tinha fontes de alimentação instaladas perto dele. O que é isso?
Meu laptop está funcionando perfeitamente há cerca de um ano, com mais de 300 ciclos de bateria. Ontem, de repente, ele ficou preto durante a inicialização, especificamente no último estágio em que o serviço de rede está sendo iniciado. Isso me faz pensar que não é um problema de software ou BIOS.
Levei-o a uma oficina e eles sugeriram que poderia ser um curto-circuito na placa-mãe. Para encontrar o curto-circuito, toquei na placa-mãe para encontrar pontos quentes. A única parte que achei esquentando foi a unidade de gerenciamento de energia. Há um pequeno capacitor ali que parece suspeitamente quebrado.
A unidade de gestão de energia aquece apenas quando o carregador está ligado e não com a bateria interna. No entanto, o laptop ainda não inicia com nenhuma das fontes de energia. Todas as unidades naquela área esquentam um pouco, então não posso ter certeza se o chip suspeito é o único que está superaquecendo. Toda a parte circulada em vermelho está esquentando um pouco
O minúsculo capacitor laranja próximo ao rótulo "PU702" é o que acho que está quebrado:
Edição de atualização: O microscópio confirma que o capacitor queimou, o que faz com que um lado do material de soldagem queime e, portanto, desconecte da placa-mãe
Sistema de nomenclatura de componentes PCB:
C: Capacitor
R: Resistor
L: Inductor
Q: Transistor
D: Diode
U: Integrated Circuit (IC)
J: Connector
TP: Test Point
SW: Switch
Há muita poeira suja no meu teclado ou perto dele. Abri meu laptop e tentei tirar o teclado. Mas acontece que ele está soldado no painel, então tirei o painel e me perguntei se posso lavar isso com água? Quero dizer, o problema é que provavelmente há chips para o teclado e o touchpad, então tudo bem se eu apenas secá-los depois de lavá-los? Quero dizer, o chip deve ser sólido e a água não pode entrar lá, certo?