Existe uma maneira de criar uma unidade de disco fictícia?

4

Para alguns testes, preciso acessar algo como / dev / sda no meu programa.

Mas não posso fazer isso no meu próprio disco rígido. Você sabe o porquê: D

Existe uma maneira de criar / dev / sdb usando RAM ou um arquivo em outro disco? Eu só preciso que ele esteja lá e aja como um disco enquanto o estiver usando, não importa o quê.

Eu sei que posso usar máquinas virtuais para isso, mas isso implica em instalar um linux. Isso consome tempo e não é tão elegante.

vfsoraki
fonte

Respostas:

3

Algo como / dev / sdX pode ser difícil de fazer, mas você pode usar uma unidade USB para atender a essa necessidade (eu tenho uma solução de hacker para você)

Em um sentido mais geral, você pode criar um dispositivo de bloco criando uma partição (dd se = / dev / zero de = file.img count = 102400) e montando-o como um dispositivo de loopback (losetup / dev / loopX file.img) . Você pode tratar o dispositivo de loop como um dispositivo de bloco (por exemplo, use o FDISK). Se você deseja acessar partições, use partx -a / dev / loopX

Depois de criar seu dispositivo de loopback, parece que você pode criar links simbólicos para ele, então ln -s / dev / loop0 / dev / sdz ln -s / dev / loop0p1 / dev / sdz1

O que fornecerá a você / dev / sdz e / dev / sdz1 (os quais, é claro, se referem basicamente ao arquivo de loopback que você criou).

davidgo
fonte
Muito obrigado, funcionou totalmente. Eu ia usar isso em um programa C com chamadas de leitura / leitura / gravação / abertura / fechamento, e funcionou como um encanto!
vfsoraki
1

Sim, você pode criar um disco RAM, aqui estão as instruções de como fazer isso:

Como criar um disco RAM no Linux

Chris
fonte
Eu li esse link. Suponho que ele cria um sistema de arquivos, mas eu queria algo como um disco bruto, por exemplo, / dev / sdz não / dev / sdz1. Enfim, também foi uma boa coisa para ler e aprender. Obrigado!
vfsoraki