我的 Arch Linux 根分区空间不足(2.4GB),对于我要启动的项目来说,这个空间不够,我唯一的选择就是微型 SD但我无法将我的安装切换到它,因为它的空间比我的小当前固态硬盘. 有没有什么方法可以使用外部微型 SD?
编辑:
Model: ATA KINGSTON SNS4151 (scsi)
Disk /dev/sda: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 211MB 210MB fat32 boot, esp
2 211MB 12.1GB 11.9GB ext4
3 12.1GB 16.0GB 3949MB linux-swap(v1) swap
Model: Generic MassStorageClass (scsi)
Disk /dev/sdb: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 15.9GB 15.9GB primary ext4
bash: dpkg: command not found
Arch 使用 Pacman 而不是 dpkg/apt,正确的命令应该是,sudo parted -l &&pacman -Qqe > pkglist.txt | grep linux-image 将列表导出到 txt 文件中:
accerciser
android-emulator-canary
android-tools
android-udev
archey3
automake
baobab
base
beignet
bison
cheese
chrome-gnome-shell
connman
dconf-editor
devhelp
dhclient
dpkg
eog
epiphany
evince
evolution
fakeroot
file-roller
firefox-developer-edition
five-or-more
flex
four-in-a-row
gdm
gedit
ghex
gnome-backgrounds
gnome-books
gnome-boxes
gnome-builder
gnome-calculator
gnome-calendar
gnome-characters
gnome-chess
gnome-clocks
gnome-code-assistance
gnome-color-manager
gnome-contacts
gnome-control-center
gnome-devel-docs
gnome-dictionary
gnome-disk-utility
gnome-documents
gnome-font-viewer
gnome-getting-started-docs
gnome-keyring
gnome-klotski
gnome-logs
gnome-mahjongg
gnome-maps
gnome-menus
gnome-mines
gnome-multi-writer
gnome-music
gnome-nettool
gnome-nibbles
gnome-photos
gnome-recipes
gnome-remote-desktop
gnome-robots
gnome-screenshot
gnome-session
gnome-settings-daemon
gnome-shell
gnome-shell-extensions
gnome-software
gnome-sound-recorder
gnome-sudoku
gnome-system-monitor
gnome-taquin
gnome-terminal
gnome-tetravex
gnome-themes-extra
gnome-todo
gnome-tweaks
gnome-usage
gnome-user-docs
gnome-user-share
gnome-video-effects
gnome-weather
grilo-plugins
gvfs
gvfs-afc
gvfs-goa
gvfs-google
gvfs-gphoto2
gvfs-mtp
gvfs-nfs
gvfs-smb
hdparm
hitori
iagno
intel-hybrid-codec-driver
iwd
jre8-openjdk
lib32-mesa
lib32-vulkan-icd-loader
lib32-vulkan-intel
lightsoff
linux
linux-firmware
make
mergerfs-git
minecraft-launcher-beta
mousetweaks
mutter
nano
nautilus
nautilus-sendto
networkmanager
openvpn
orca
pakku
pavucontrol
pkgconf
plasma-pa
polari
ponymix
porntime-bin
pulseaudio-jack
python-adb-git
quadrapassel
rowhammer-native-git
rygel
samus-scripts
sex
simple-scan
sudo
sushi
swell-foop
sysprof
tali
texinfo
totem
tracker
tracker-miners
vino
vulkan-intel
wpa_supplicant
xdg-user-dirs-gtk
xf86-video-vesa
xkeyboard-config-chromebook
xorg-bdftopcf
xorg-docs
xorg-font-util
xorg-fonts-100dpi
xorg-fonts-75dpi
xorg-fonts-encodings
xorg-iceauth
xorg-luit
xorg-mkfontscale
xorg-server
xorg-server-common
xorg-server-devel
xorg-server-xephyr
xorg-server-xnest
xorg-server-xvfb
xorg-server-xwayland
xorg-sessreg
xorg-setxkbmap
xorg-smproxy
xorg-x11perf
xorg-xauth
xorg-xbacklight
xorg-xcmsdb
xorg-xcursorgen
xorg-xdpyinfo
xorg-xdriinfo
xorg-xev
xorg-xgamma
xorg-xhost
xorg-xinput
xorg-xkbcomp
xorg-xkbevd
xorg-xkbutils
xorg-xkill
xorg-xlsatoms
xorg-xlsclients
xorg-xmodmap
xorg-xpr
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xrefresh
xorg-xset
xorg-xsetroot
xorg-xvinfo
xorg-xwd
xorg-xwininfo
xorg-xwud
yelp
我必须使用 Pacman(arch 包管理器)安装程序,这些程序会占用 SSD 上的剩余空间,Pacman -S - -gpdir 会安装到自定义目录,但此命令仅在此目录中有主安装时才有效。这意味着我必须制作我的微型 SD/home 文件夹并将其挂载为。我可能会对 /home 和 /usr 以及 /var 执行此操作,这将有助于项目,我将研究如何在不安装 Arch Linux 全新副本的情况下进行设置。
谢谢你的帮助!:)
答案1
就您而言,建议不要将所有内容都依赖根分区,而是进行多次挂载。以前这种情况比较常见,但现在大多数硬盘都足以满足 90% 的使用情况,而且通常只有一个人使用,文件系统要求也比较简单,因此将所有内容集中到一个分区中更为常见。
从历史上看,划分文件系统的常见方式涉及以下一个或多个分区/文件系统:
/ <-- obviously.
/usr <-- Programs and other things that are read, but not written that often
/home <-- Because users tend to take up a lot of space.
/var <-- Many small files read and written very often.
这样做的好处是这些单独的文件系统不必局限于同一硬盘。/home 空间不足?将整个文件移动到单独的更大硬盘上。
现在,谈谈您的情况:我怀疑您即将开展的项目/
本身不需要空间,而是需要放在子文件夹中。在这种情况下,建议不要管它/
,而是将您的 USB 硬盘安装到适当的文件夹中。例如,将该驱动器安装到/home/yourusername/projectname
将允许您的项目驻留在该驱动器上,而不会影响系统的其余部分。当然,这完全取决于项目的性质,但我相信您可以应用此逻辑来允许根文件系统保持原样。/
正如@K7AAY 在他的评论中指出的那样,使用 USB 运行确实不推荐。
如何将文件系统挂载到目录取决于驱动器、其文件系统、您想要挂载的位置以及挂载本身的性质(启动时自动挂载、只读等),但我相信四处寻找有关如何挂载文件系统和驱动器的指南应该会给您一个不错的指南。这在 Linux 发行版中相当统一。基本内容如下:
mkdir /some/folder
mount /dev/sdb1 /some/folder
....其中 sdb1 是您要挂载的文件系统。您可能还想查找该文件/etc/fstab
并考虑是否要在启动时执行此操作。
答案2
在 Jarmund 和 K7AAY 的帮助下,我找到了解决我问题的答案。
~
为了解决这个问题,我需要为 /usr /var 和 /home 文件夹创建 3 个分区(或有 3 个驱动器),我只有一个驱动器,所以我将在我的驱动器上创建 3 个分区(对我来说是 Micro SD)。
分区需要适当调整大小以适合文件夹,如果您像我一样在当前安装上执行此操作,您可以使用它du <directory> -h
来查看这些文件夹占用了多少空间。
对我来说,/home 占用 550MB,/usr 占用 6.6GB,/var 占用 590MB。
因此,我将创建 3 个分区,其中 2 个为 2GB(用于 /home 和 /var),另一个为驱动器上的剩余空间(用于 /usr)分区大小不必相同,我只是试图在将文件夹复制到匹配的挂载点后为要执行的安装保留尽可能多的空间
接下来,您需要将匹配的文件夹复制到驱动器上的位置。(或挂载点)
创建分区并复制文件后,我们必须编辑 /etc/fstab 文件,以便分区在启动时自动挂载。首先,我们需要获取分区的 UUID,为此,我们将发出命令sudo blkid /dev/sd**
(例如 sdb1) 这将输出指定分区的 UUID。
例如:
$ sudo blkid /dev/sdc1
/dev/sdc1: UUID="b78a94a5-b910-4bce-9f79-c281b312a242" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3774f7ec-01"
(对我来说,上面的 UUID 是 /home)然后,我们将编辑 /etc/fstab 文件以包含以下内容:
UUID={UUID for /home} /home ext4 defaults 0 0
UUID={UUID for /var} /var ext4 defaults 0 0
UUID={UUID for /usr} /usr ext4 defaults 0 0
注意:如果你不想损坏你的设备,请复制 BLKID 提供的不带引号的 UUID
如果您不想重新启动来查看更改,您可以将分区绑定到其匹配的目录。
例如
sudo mount --bind /home /dev/sd**
~
我将根据文件复制完成后的结果编辑此答案(6.6GB 需要很长时间才能复制,速度为 1.4MB/s)
sudo mount --bind /home /dev/sd**
~
我将根据文件复制完成后的结果编辑此答案(6.6GB 需要很长时间才能复制,速度为 1.4MB/s)
它可以工作,至少可以这么说,我的电脑很慢,在安装了 /home 文件夹的情况下,我已将其卸载并且可能会将其保持卸载状态,因为它严重减慢了我的设备速度,gdm 在启动过程中崩溃,(它确实启动了,冻结然后崩溃)现在写入 /var 和 /usr 的速度非常慢,gdm 在 /home 卸载并从 fstab 中删除后仍能工作,除此之外一切都很好,尽管任何应用程序的加载速度都很慢,因为应用程序保存在 /usr 中,而我的 SD 只能以大约 1.4MB/s 的速度运行
这实在是慢得令人难以忍受,我打算简单地安装——绑定我的 /usr 分区,然后安装程序,然后我将重新启动并——绑定该程序的确切位置。