我的上网本有一个闪存驱动器而不是硬盘驱动器,我使用 Ubuntu Netbook Remix 和 ext3 作为文件系统。我读过一些关于闪存驱动器磨损的文章,主要问题似乎是:
据说这些加起来,因此没有考虑到这一点的普通文件系统最终会通过移动少量数据来磨损闪存驱动器。
现在我不怀疑这个问题在理论上是非常真实的。然而,我知道我们技术人员很容易被有趣的优化问题所吸引,例如设计一个替代文件系统来对抗闪存磨损。例如,进行内存优化固然很好,但是如果您最终在有数百 MB 可用内存的情况下节省了 100 KB 内存,那么这并不能解决真正的问题。
我最终从这一切中得到的是,我不应该在闪存驱动器上使用普通文件系统,因为它们很快就会耗尽驱动器。但我不相信。所以问题是:闪存驱动器磨损是否与日常正常使用有关?我的使用 ext3 的笔记本电脑是否会在几年内耗尽我的闪存驱动器......或者所有这些都是一个理论上的问题,确实减少了使用时间,但只是很少,以至于在正常情况下它永远不会发生? 或者是否已经在上网本闪存驱动器上使用透明的硬件磨损均衡来解决问题,因此替代文件系统甚至没有任何好处?
如何在多(两)张较小的页面 (A4) 上打印较大的页面 (A3)?
这有时称为“海报打印”,因为目的是将较小的打印页面连接在一起以形成较大的页面。
一些打印机驱动程序确实有一个本机选项,但这个问题自然涉及不存在的情况。
另一个假设是创建要打印的较大页面的程序不知道如何将其拆分为多个部分进行打印。如果需要,可以假定数据格式为 PDF 或 PostScript,因为您可以通过 PDFCreator 等虚拟“PDF 打印机”从任何打印输出轻松创建这些格式。
我知道Ghostscript可用于操作 PS 和 PDF 数据 - 它也可以这样做吗?
我正在寻找适用于 Linux 或 Windows 的解决方案,但我也有兴趣了解其他平台。
假设不需要担心与旧系统的兼容性,我希望使用最新的稳定 linux 文件系统总是更好,目前似乎是ext4.
不过好像ext4变化不大。维基百科ext4文章确实列出了 的 11 个主要功能ext4,但据我所知,其中大部分似乎与ext3. 这篇文章还讨论了由延迟分配引起的潜在数据丢失,但据我所知,这只会发生在深奥的系统崩溃情况下,因此也不会产生任何实际差异。
这只是一个没有任何重大差异的小渐进升级,还是我应该运行以将我的ext3系统转换为ext4?
如何在 Windows 7 中挖掘配对设备的蓝牙链接密钥?这是依赖于我使用的蓝牙堆栈(东芝)的东西,还是在 Windows 7 中存储这些东西的通用位置?
注意:我不是在谈论用户在配对过程中通常输入的六位数代码 - 这是毫无价值的,因为它在配对过程后被丢弃。我的意思是设备在配对期间交换的 128 位链接密钥,然后用于加密所有蓝牙流量。
背景:
我在笔记本电脑上双启动 Windows 7 / Ubuntu,我想让我的手机与两个操作系统配对。由于双启动计算机只有一个蓝牙适配器,因此只有一个蓝牙地址,我无法对手机进行两次配对,因为在第二次配对 (Windows) 中,手机只是将之前的配对 (Linux) 替换为相同的蓝牙地址。
Ubuntu 论坛上的一个线程向我指出了我必须做的事情 - 首先在 Linux 上配对,然后在 Windows 上配对,然后用 Windows 协商的一个替换 Linux 端的链接密钥。
我可以找到 Linux 端的配对密钥/var/lib/Bluetooth/[BD_ADDR]/linkkeys- 那里没有问题。
但是,在 Windows 端我找不到密钥。根据论坛帖子,在 Windows 端,密钥应该在,SYSTEM\ControlSet002\services\BTHPORT\Parameters\Keys\[BD_ADDR]但虽然该注册表项确实存在,但它没有子项。(并且 ControlSet001 中类似的注册表路径也没有任何子项。)
我被指示要做的一件事是在与Sysinternals Process Monitor配对期间捕获所有事件。我这样做了,但我无法从捕获的事件中找到任何有用的信息,甚至无法将数据导出到一个巨大的 XML 并使用 BD_ADDR(带或不带冒号)对其进行搜索。
那么如何在 Windows 7 中找到配对设备的链接密钥?
TrueCrypt提供了使用隐藏操作系统的选项。这是通过将诱饵操作系统驻留在分区 1 上并使用分区 2 作为诱饵操作系统的(加密)数据存储来实现的。问题是,TrueCrypt 使分区 2(“外部”分区)也可以包含一个隐藏在外部分区可用空间中的隐藏分区——然后该分区包含隐藏的操作系统。
当挂载外部分区作为数据存储时,如果您提供隐藏分区的密码,TrueCrypt 能够保护隐藏数据。如果不这样做,任何写入外部分区可用空间的内容当然可能会覆盖隐藏数据中的某些内容。出于安全原因,TrueCrypt 不会通过移动免费数据来进行预防,或者只是避开它隐藏的区域——而只是通过检测冲突并防止写入来进行预防。事实上,TrueCrypt 然后使整个分区只读,直到重新挂载。
现在这对于您不常使用的文件系统来说是有意义的——例如,只存储一些诱饵文件,然后添加一个隐藏分区,使诱饵文件保持不变或只读。然而,为了让它看起来不可疑,诱饵操作系统当然应该经常用于不敏感的工作 - 这甚至是 TrueCrypt 文档所建议的。
但实际上使用外部系统似乎真的很麻烦,因为使用意味着会有很多写入 - 即使分区专用于数据存储。所以我预计冲突会经常发生:即使隐藏分区很小(150 MB),假设数据随机分布在可用空间中,即使有千倍的可用空间(150 GB)从统计上讲,即使将 1 MB 文件写入外部分区时也会发生冲突。(也就是说,如果我的数学是正确的......)即使你有 1.5 TB,你甚至需要在写入 10 MB 后重新挂载 - 这对我来说听起来像是外部文件系统对于常规工作来说非常不可用。
我希望我误解了一些东西,但我没有在文档中找到它。所以问题是:经常使用诱饵操作系统是否意味着您必须在写入冲突后不断卸载/重新挂载,从而使任何文件复制成为一项乏味的任务?或者TrueCrypt有什么方法可以防止这种情况?这是什么方法?
从视频文件中自动查找帧与给定图像大致匹配*的位置的最佳工具/方法是什么?
基本上,命令是:“查找 [image.jpg] 在 [video.mpg] 中出现的位置”
最好使用ffmpeg或其他一些 Linux 命令行工具。
* - 或者可能是视频中所有帧中与图像最匹配的帧
BitTorrent Sync可以从命令行执行,但--help参数显示的选项很少。执行btsync使 web ui 可用(在端口 8888),可用于配置。
BitTorrent Sync 1.2.73
Usage:
btsync [--config <path>] [--nodaemon] [--generate-secret] [--dump-sample-config] [--help] [--get-ro-secret <secret>]
Options:
--config - location and name of configuration file
--nodaemon - do not use daemon mode
--generate-secret - generate shared secret
--get-ro-secret - get read only secret for existing master secret
--dump-sample-config - dump sample config file
--help - print this message and exit
Run Code Online (Sandbox Code Playgroud)
这些选项似乎不包括创建新的共享文件夹。
我可以仅使用命令行通过 BitTorrent Sync 创建新共享吗?
我也对非常笨拙的解决方案感兴趣,例如编辑配置文件并重新启动服务,或将特定的 HTTP 请求发布到 localhost:8888。
我在这里真正需要知道的唯一一件事是如何在设备繁忙时强制卸载。 umount -f不起作用。以下描述只是我为什么需要这样做的背景,以防有人设法提出更好的解决方案。如果无法执行此卸载,我很乐意接受解释为什么不作为答案。
问题是,每当我将上网本置于睡眠模式时,我的挂载点就会损坏。挂载仍然存在,并且运行mount显示它正常:
/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
Run Code Online (Sandbox Code Playgroud)
但是,任何读取/写入它的尝试都会失败并显示Input/output error.
如果有任何程序打开,尝试卸载设备,失败
umount: /home/ilari/storage: device is busy
Run Code Online (Sandbox Code Playgroud)
问题似乎是该设备/dev/mmcblk0在睡眠时从系统中消失了。但这就是奇怪的事情发生的地方。以前的设备仍然可用,只是现在变成了/dev/mmcblk1!我可以再次将它安装到同一点,这使得输出mount相当有趣
/dev/mmcblk0p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
/dev/mmcblk1p1 on /home/ilari/storage type ext4 (rw,nosuid,nodev,uhelper=hal)
Run Code Online (Sandbox Code Playgroud)
问题是,当我这样做时,挂载点就像睡眠前一样工作!打开的程序可以再次继续使用文件系统,就好像什么都没发生过一样。
但是让系统积累多个(失败的)设备似乎相当粗略。所以我想在将“新”设备重新安装到同一点之前卸载以前的安装点。
设备繁忙时如何强制卸载?最好在唤醒时自动,并自动重新挂载。任何帮助表示赞赏。
(我当然可以关闭所有打开的程序,然后卸载,但这几乎违背了睡眠模式的目的。)
编辑:如评论中所述,最好在睡觉前卸载系统,然后在唤醒时重新安装它。事实上,这似乎甚至会阻止设备更改其索引号,因此它保持为/dev/mmcblk0. 问题是我只能在关闭所有使用它的程序后卸载它。(请注意,这在睡眠后也有效 - 通过关闭所有程序,我总是可以卸载断点。)umount -f也无济于事,使用额外的umount2: Device or resource busy.
我在 Acer Aspire One 上使用 …
通过使用 ARP 欺骗窃取访问点的本地 IP 地址,似乎有许多可能的方法可以对公共访问点创建中间人攻击。可能的攻击范围从伪造密码请求字段到将 HTTPS 连接更改为 HTTP,甚至最近发现的在安全 TLS 连接的开头注入恶意标头的可能性。
然而,似乎声称这些攻击并不常见。亲眼看看会很有趣。有什么方法可以检测网络上的某个人是否正在尝试这种攻击?
我想获得一个简单的 HTTP 登录页面将是一个明显的线索,当然你可以运行 Wireshark 并继续阅读所有有趣的 ARP 流量......但是自动化的解决方案会更方便一些。分析后台内容并在网络上检测到攻击时发出警报的东西。亲眼看看这些攻击是否真的发生在某个地方会很有趣。
所以让我们假设我有:
dest/dir/file1
dest/dir/file2
dest/dir/subdir/subfile1
dest/dir/subdir/subfile2
Run Code Online (Sandbox Code Playgroud)
和
src/dir/file3
src/dir/subdir/subfile3
src/dir/newdir/anotherfile
Run Code Online (Sandbox Code Playgroud)
...让我们假设有数千个文件和子目录。
现在我想将所有新文件从 src 移动到 dest,移动到它们各自的目录,在需要时创建新的子目录。这将等同于“ cp -a src/dir dest/ ”,但作为移动操作。显而易见的命令“ mv src/dir dest/ ”失败,因为该目录已存在于目标中。
我怎样才能用一个命令做到这一点?
linux ×7
filesystems ×2
images ×2
security ×2
bluetooth ×1
command-line ×1
editing ×1
ext4 ×1
ffmpeg ×1
hard-drive ×1
mount ×1
multi-boot ×1
networking ×1
printing ×1
truecrypt ×1
ubuntu ×1
video ×1
windows ×1
windows-7 ×1