欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: 暗无天日

linux一切都是文件的特性可以使你把一个文件当成虚拟磁盘来用。步调如下:

1. 利用dd建设虚拟磁盘文件。譬喻,利用下面可以建设一个200M的磁盘

dd if=/dev/zero of=~/HDD.img bs=1M count=200

2. 利用fdisk对其举办分区

 

[lujun9972@X61 ~]$ fdisk HDD.img

接待利用 fdisk (util-linux 2.32)。
变动将逗留在内存中,直到您抉择将变动写入磁盘。
利用写入呼吁前请三思。

设备不包括可识此外分区表。
建设了一个磁盘标识符为 0x38ffa4dc 的新 DOS 磁盘标签。

呼吁(输入 m 获取辅佐):n
分区范例
   p   主分区 (0个主分区,0个扩展分区,4空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认  1): 
第一个扇区 (2048-409599, 默认 2048): 
上个扇区,昆山软件公司,+sectors 或 +size{K,M,G,T,P} (2048-409599, 默认 409599): +100M

建设了一个新分区 1,范例为“Linux”,巨细为 100 MiB。

呼吁(输入 m 获取辅佐):n
分区范例
   p   主分区 (1个主分区,0个扩展分区,3空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (2-4, 默认  2): 
第一个扇区 (206848-409599, 默认 206848): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (206848-409599, 默认 409599): 

建设了一个新分区 2,昆山软件开发,范例为“Linux”,劳务派遣管理系统,巨细为 99 MiB。


呼吁(输入 m 获取辅佐):w

分区表已调解。
正在同步磁盘。

3. 利用losetup建设loop设备

[lujun9972@X61 ~]$ sudo losetup -Pf --show ~/HDD.img
[sudo] lujun9972 的暗码:
/dev/loop0

个中参数

-P
强制要求焦点扫描loop设备中的分区表
-f
自动寻找并利用第一个未用的loop设备
–show
输出所分派的loop设备

利用 lsblk 可以看到已经把虚拟磁盘文件挂载上去了

[lujun9972@X61 ~]$ lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0       7:0    0   200M  0 loop 
├─loop0p1 259:2    0   100M  0 loop 
└─loop0p2 259:3    0    99M  0 loop 
sda         8:0    0 111.8G  0 disk 
├─sda1      8:1    0    50G  0 part /home
├─sda2      8:2    0     8G  0 part [SWAP]
└─sda3      8:3    0  53.8G  0 part /

4. 像普通磁盘那样利用

虚拟磁盘用起来跟普通磁盘一样:

可以建设文件系统

[lujun9972@X61 ~]$ sudo mkfs.reiserfs /dev/loop0p1 
mkfs.reiserfs 3.6.27

Guessing about desired format.. Kernel 4.15.15-1-ARCH is running.
Format 3.6 with standard journal
Count of blocks on the device: 25600
Number of blocks consumed by mkreiserfs formatting process: 8212
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 6cad1bcb-4798-4643-b471-a5ab695e0eb5
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
  ALL DATA WILL BE LOST ON '/dev/loop0p1'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
ReiserFS is successfully created on /dev/loop0p1.

可以挂载

[lujun9972@X61 ~]$ sudo mount /dev/loop0p1 /mnt
[lujun9972@X61 ~]$ df -h
文件系统        容量  已用  可用 已用% 挂载点
dev             1.9G     0  1.9G    0% /dev
run             1.9G  720K  1.9G    1% /run
/dev/sda3        53G  7.3G   43G   15% /
tmpfs           1.9G   23M  1.9G    2% /dev/shm
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
tmpfs           1.9G   52K  1.9G    1% /tmp
/dev/sda1        50G   25G   26G   49% /home
tmpfs           388M  4.0K  388M    1% /run/user/1000
/dev/loop0p1    100M   33M   68M   33% /mnt

存入文件

[lujun9972@X61 ~]$ sudo touch /mnt/secret
[lujun9972@X61 ~]$ ls -l /mnt/secret 
-rw-r--r-- 1 root root 0 4月   9 18:36 /mnt/secret

5. 利用完后,再利用losetup卸载虚拟磁盘

[lujun9972@X61 ~]$ sudo umount /mnt
[lujun9972@X61 ~]$ sudo losetup -d /dev/loop0 
[lujun9972@X61 ~]$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0    50G  0 part /home
├─sda2   8:2    0     8G  0 part [SWAP]
└─sda3   8:3    0  53.8G  0 part /