如何在 Windows 上零填充虚拟磁盘的可用空间以获得更好的压缩?
我想要一个简单的开源工具(或至少免费)。它可能应该写一个尽可能大的文件,0然后将其删除。仅通过一次(这不是出于安全原因而是出于压缩目的,我们正在备份虚拟机)。
应该从 Windows 内部运行,而不是从磁盘运行。
在 Linux 上,我这样做(作为用户):
cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/
Run Code Online (Sandbox Code Playgroud)
编辑 1:我决定使用已接受答案中的sdelete。我查看了 sdelete 的帮助:
C:\WINDOWS\system32>sdelete /?
SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: sdelete [-p passes] [-s] [-q] <file or directory>
sdelete [-p passes] [-z|-c] [drive letter]
-c Zero free space (good for virtual disk optimization)
-p passes Specifies number of overwrite passes (default is 1)
-q Don't …Run Code Online (Sandbox Code Playgroud) 我们都知道什么127.0.0.1是用于(环回)。
其余保留127.0.0.0/8回送空间的用例是什么?
rsync可以mv使用以下选项非常相似地将文件夹哄入移动文件夹中,并且优于传统文件夹:
rsync -axvvES --remove-source-files source_directory /destination/
Run Code Online (Sandbox Code Playgroud)
但是,我似乎还无法完成的一件事是删除原始目录。该--remove-source-files标志就是这样做的,删除源文件,但不删除源目录。我也希望有--remove-source-directories一面旗帜,但没有。
我该如何处理? 我想我可以rm -fr在移动后发出一个,但是我更愿意将整个过程保持在一个过程中,而不是引入潜在的错误。
ESXi 5 上是否也有控制台?ESXi 4 中用于“隐藏控制台”的众所周知的方法似乎不起作用。
(Alt-F1,输入“不支持”,输入root密码)
我想允许访问在其他情况下被禁止的目录中的单个文件。
这不起作用:
<VirtualHost 10.10.10.10:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride None
order allow,deny
allow from all
</Directory>
# disallow the admin directory:
<Directory /var/www/html/admin>
order allow,deny
deny from all
</Directory>
# but allow this single file::
<Files /var/www/html/admin/allowed.php>
AuthType basic
AuthName "private area"
AuthUserFile /home/webroot/.htusers
Require user admin1
</Files>
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我访问时,http://example.com/admin/allowed.php我收到http://example.com/admin/目录的禁止消息,但没有从基本身份验证的浏览器登录弹出窗口,因此基本身份验证对文件不起作用。如何为 allowed.php 设置例外?
如果不可能,也许我可以在另一个 Files 指令中枚举所有禁止的文件?
假设 admin/ 还包含 user.php 和 admin.php 这应该在这个虚拟主机中被禁止。
编辑:我还尝试了以下修改,尝试遵循 Ignacio 的回答中的建议,结果相同为“禁止”:
...
# disallow the admin …Run Code Online (Sandbox Code Playgroud) 我知道在 linux 主机上克隆 VirtualBox 机器的两种方法,一种是使用 VirtualBox gui 并作为设备导出和重新导入(在 VirtualBox 的文件菜单中)。
另一种方法是仅克隆虚拟磁盘容器文件:
VBoxManage clonevdi /mnt/md1/original/root-fs.vdi /mnt/md1/cloned/root-fs.vdi
Run Code Online (Sandbox Code Playgroud)
(取自http://forums.virtualbox.org/viewtopic.php?p=853#p858)
编辑:这似乎不适用于已经是 ~/VirtualBox/VirtualBox.xml 一部分的 VDI 文件,我收到一条错误消息:
错误:无法使用 UUID {96a1462b-c30a-4911-a954-d9093122f083} 注册硬盘“/mnt/md1/original/root-fs.vdi”,因为硬盘“/mnt/md1/original/root-fs”。带有 UUID {96a1462b-c30a-4911-a954-d9093122f083} 的 vdi' 已经存在于媒体注册表中 ('/home/mit/.VirtualBox/VirtualBox.xml')
之后我必须创建一个新的 VM 并使用克隆的虚拟磁盘容器。
是否还可以通过使用文件系统命令复制虚拟磁盘容器文件和配置文件来克隆 VM,然后手动完成其余工作?
我必须手动编辑 ~/VirtualBox/VirtualBox.xml 并插入新磁盘和新机器:
我可以只组成 UUID 或者这将如何工作?
我非常喜欢这种核心的做事方法,因为它允许我自由快速地备份、恢复、移动或克隆机器。或者有没有更好的方法来做到这一点?
virtualization linux command-line-interface cloning virtualbox
当我激活一个新的 rackspace ubuntu 10.04 实例时,我不断收到以下消息:
perl:警告:请检查您的系统是否支持并安装了您的语言环境设置:LANGUAGE = (unset), LC_ALL = (unset), LANG = "de_DE.UTF-8"。
如何正确选择和配置语言环境?
编辑:这是由 Rackspace 支持提供给我的,它也有效,也许它可以帮助使用 ubuntu 10.04 的人:
sudo locale-gen en_US.UTF-8
sudo /usr/sbin/update-locale LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud) 我可以使用此脚本从 linux 连接到 windows RDP 会话:
#!/bin/bash
/usr/bin/rdesktop -N -x m -u Administrator -p secret123 -d DOMAIN1 127.0.0.1:33891
Run Code Online (Sandbox Code Playgroud)
(远程 Windows 服务器的 rdp 端口被安全地隧道连接到本地主机上的端口 33891)
但是这个脚本没有正确传输密码:
#!/bin/bash
/usr/bin/rdesktop -N -x m -u Administrator -p #secret$123# -d DOMAIN2 127.0.0.1:33892
Run Code Online (Sandbox Code Playgroud)
我必须如何对密码中的特殊字符进行编码?
我还想知道如果我选择 /bin/sh 作为脚本的 shell 是否会有所不同。
编辑:
我发现这有效:
\#秘密\$123\#
如何在不登录 Windows 2003 服务器登录屏幕的情况下启用立即关机。
我知道它不太安全,因为那时任何人都可以关闭机器。
(但无论如何“他们”总是可以拔掉电源插头;)
当我通过 ssh 在 ESXi5 主机的命令行上时,如何关闭虚拟机?
边注:
要让其他机器上的脚本无需密码登录ESXi,如果要以root身份登录,请将其他机器上用户的公钥添加到ESXi的“/etc/ssh/keys-root/authorized_keys”中。如果您想以用户 x 登录,请将密钥添加到“/etc/ssh/keys-x/authorized_keys”。
我想在每个月的第 1 天运行一些作业,在每周的第 1 天运行其他作业,但如果两者发生冲突怎么办?在这种情况下,月份应该优先。我怎么告诉这个cron?
# run on every day 1 of each month:
59 12 1 * * user script_month
# run on every day 1 of each week:
59 12 * * 1 user script_week
Run Code Online (Sandbox Code Playgroud)
编辑 1:
有一个使用“IF”的答案,这是一个很好的解决方法。
那这个呢:
# run on every day 1 of each week:
59 12 2-31 * 1 user script_week
Run Code Online (Sandbox Code Playgroud)
也许它也符合我的要求?(在第 1 天的所有周运行,除非是当月的第 1 天)
编辑2:
我找到了这个:
“如果两个 [日期] 字段都受到限制(即不是 *),则当任一字段与当前时间匹配时,将运行该命令。” (来源:http : //thewatertower.org.uk/news/000160/crontab_the_first_five_fields_combine_to_restrict_the_schedule_except_for_when_they_dont.html)
似乎不可能像我在编辑 1 中写的那样?
bash ×2
linux ×2
shell ×2
vmware-esxi ×2
apache-2.2 ×1
cloning ×1
console ×1
cron ×1
ipv4 ×1
localization ×1
loopback ×1
rdesktop ×1
rdp ×1
rsync ×1
security ×1
ssh ×1
ubuntu ×1
ubuntu-10.04 ×1
unix-shell ×1
virtualbox ×1
virtualhost ×1
windows ×1
zero-fill ×1
zsh ×1