L.S*_*.S. 10 live-usb boot usb hard-drive
我试图在具有持久更改的 USB 驱动器上实时安装 Ubuntu。但是,由于各种原因(性能、空间),我想将更改写入 HDD 而不是 USB。
我发现,这些更改是在一个文件中处理的,该文件具有由系统 (casper-rw) 挂载的 ext3 文件系统。但它似乎是在启动时在闪存驱动器上自动检测到的。
如何在 HDD 上创建新的 casper-rw 文件并将 USB 驱动器上的 Ubuntu live 系统重新路由到 HDD?
编辑 2015-07-14:
感谢您到目前为止的答案。它们非常有趣,有助于更好地理解“实时系统持久保存功能”的机制,并展示解决问题的好方法。不幸的是,在询问有关访问主机系统和/或访问新硬件的问题时,我试图克服一些我没有明确说明的限制(抱歉)。
如果分区是一个选项,我认为这里给出的答案非常好,因为它只需要您创建一个新分区,将其标记为 casper-rw 就完成了(工作很棒,我测试了它)。
如果购买新硬件是一种选择,USB3.0 闪存驱动器(MLC 或 SLC)、便携式 HDD、eSATA 和其他选项会比普通 USB2.0 闪存驱动器具有更好的性能。
所以我想知道是否有一种方法可以只在磁盘上创建一个 casper-rw 文件而不是一个分区,访问受限(或复制/链接闪存驱动器上的那个)。
这样就可以很容易地将 casper-rw 文件复制回闪存驱动器并从那里再次使用它或将其移动到另一台计算机上,从而提供极大的灵活性,对 HDD 的更改最少,并轻松删除对硬盘所做的更改系统。
如果您使用以下设置,这将非常容易:
在SLC U 盘上安装 Ubuntu (如果你的硬件支持,最好是 USB 3.0),没有任何 casper 东西(只是一个正常的安装,把 U 盘当作 SSD。)
为什么?SLC 的价格是MLC 的两倍,但速度快 4 倍,使用寿命长 8*! 所以它们真的是棒上的小型 SSD!
优化系统,把U盘当成小SSD,所以:
在您/etc/sysctl.conf添加:
# Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
# to not wear out the USB stick as the Ubuntu default is optimized for a server.
# 10 to balance with vfs_cache_pressure
vm.swappiness = 10
# Fabby: Lower vfs_cache_pressure to 75%
# (once cached, probably not immediately needed any more)
#
# This percentage value controls the tendency of the kernel to reclaim
# the memory which is used for caching of directory and inode objects.
#
# At the default value of vfs_cache_pressure=100 the kernel will attempt to
# reclaim dentries and inodes at a "fair" rate with respect to pagecache and
# swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer
# to retain dentry and inode caches.
vm.vfs_cache_pressure = 75
# Fabby: Good to improve sequential reads (stop stuttering in movie play)
# Can also be implemented per disk using udev rules
vm.max-readahead=2048
vm.min-readahead=1024
Run Code Online (Sandbox Code Playgroud)
在您的引导 USB 行中/etc/fstab添加粗体参数。(它可能是sdc或sdd。以下是一个示例,如果可能,请使用 UID)
/dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1
创建 2 个用户:一个 admin 用户在 U 盘上有其主目录,但文件很少,一个普通用户在 HDD 上有其主目录。
现在才插入硬盘并将必要的硬盘信息添加到您fstab的自动挂载硬盘并添加以下参数:
nobootwait,nofail
即使硬盘不存在也允许启动(如果是这种情况,只有管理员用户可以访问,普通用户不能访问)
现在以管理员用户身份登录并将普通用户的主目录从 U 盘移动到硬盘:
cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser
如果一切正常:
rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser
Run Code Online (Sandbox Code Playgroud)
作为记录:我有一个像这样的 16GB USB 2.0 MLC 棒(对于我的用例来说已经足够了,而且不太贵,它现在大约有 5 年了,仍在运行!)
您可以轻松地将实时媒体的可写文件系统(在 casper-rw 文件中)放到硬盘上。限制是 casper-rw 文件必须位于 FAT 分区上。较新的机器 (UEFI) 都有 FAT EFI 分区,但通常太小,无法容纳 1G-4G casper-rw 文件。在另一个足够大的 FAT 分区上,您可以创建目录,每个目录都保存一个 casper-rw 文件,用于可能不同的实时媒体。假设 sda11 大小为 10G,有一个 10G 的 FAT 文件系统,挂载在 /mnt/sda11,其中有目录 /A 、 /B 、 /C 、 /D 和 /E 。假设我们将使用 /A 作为持久媒体,并在那里放置 casper-rw。
cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw
Run Code Online (Sandbox Code Playgroud)
获取使用持久性创建的实时媒体,并编辑 /boot/grub/grub.cfg 文件和 /syslinux/txt.cfg 文件,在“持久性”一词后面添加
"persistent-path=/A"
Run Code Online (Sandbox Code Playgroud)
/boot/grub/grub.cfg ...
menuentry "Try Ubuntu without installing" {
set gfxpayload=keep
linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
initrd /casper/initrd.lz
}
Run Code Online (Sandbox Code Playgroud)
/syslinux/txt.cfg
default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...
Run Code Online (Sandbox Code Playgroud)
就是这样。您甚至不需要重命名/删除 USB 介质上的 casper-rw 文件。
如果 USB 介质上有空间,您甚至可以将硬盘的 casper-rw 复制回 USB,并随身携带所做的更改。
持久路径不允许任何显式磁盘引用,因此在所有 FAT 分区中应该是唯一的。使用 1 或 2 个 FAT 分区(其中一个是 EFI 分区)进行测试。不适用于 ext2 或 ntfs 文件系统(而非 FAT)。如果您还在“持久”同一行添加“toram”一词,则慢速 USB 上的压缩文件系统将被复制到 RAM 中并提供更好的性能,但是,FAT 分区似乎存在关闭问题没有完全卸载(这似乎不会造成任何问题,但是......)
| 归档时间: |
|
| 查看次数: |
3924 次 |
| 最近记录: |