我想用我的 Ubuntu 双启动 ArchLinux。我想要一些关于如何做到这一点的提示,而不会过多地弄乱我的分区。目前,我的电脑分区方案是这样的:
(Ubuntu only)
sda
sda1 [boot loader]
sda2 [root]
sda3 [swap]
sda4 [home]
Run Code Online (Sandbox Code Playgroud)
如果我只安装 Arch,我会有相同的分区方案。现在我应该如何准备我的分区才能成功双启动?我有一个建议,尽管它可能很幼稚:
sda
sda1 [bootloader] -> Will it detect Arch?
sda2 [root_ubuntu]
sda3 [swap]
sda4 [home_ubuntu] -> I have a lot of space, I could just resize and divide this partition.
sda5 [root_arch]
sda6 [home_arch]
Run Code Online (Sandbox Code Playgroud)
上述方案是否可行?无论如何,你建议我做什么?我必须创建或修改哪些文件(配置等)?
我经常从 live usb/CD 安装 Linux 发行版。为此,我希望能够在没有任何互联网连接的情况下设置我的无线网络。我有一个 Broadcom 芯片组:
$ lspci -k
04:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n
Run Code Online (Sandbox Code Playgroud)
我下载了bcmwl-kernel-source软件包及其依赖项 ( dkms)。我可以离线安装它们并使我的 wifi 正常工作。但是我想了解它是如何工作的。
.ko模块文件夹中有一个文件列表:
$ ls /lib/modules/`uname -r`/kernel/net/wireless/
cfg80211.ko lib80211_crypt_tkip.ko lib80211.ko
lib80211_crypt_ccmp.ko lib80211_crypt_wep.ko
Run Code Online (Sandbox Code Playgroud)
我备份了它们并删除了它们
$ rm /lib/modules/`uname -r`/kernel/net/wireless/*.ko
$ reboot
Run Code Online (Sandbox Code Playgroud)
重新启动后,wifi不再工作。这些.ko文件似乎是完成wl工作的重要文件。
我尝试重新加载,wl但它不再被识别:
$ modprobe wl
modprobe: ERROR: ../libkmod/libkmod-module.c:180 kmod_module_parse_depline() ctx=0x7f9f5375d010 path=/lib/modules/3.13.0-35-generic/kernel/net/wireless/lib80211.ko error=No such file or directory
modprobe: ERROR: ../libkmod/libkmod-module.c:180 kmod_module_parse_depline() ctx=0x7f9f5375d010 path=/lib/modules/3.13.0-35-generic/kernel/net/wireless/lib80211.ko error=No such file or directory
modprobe: ERROR: could …Run Code Online (Sandbox Code Playgroud) 我可以远程访问服务器。在那里我umask设置为 0007。我将我的服务器名称称为“sme”,我的本地名称称为“lme”。所以我执行以下操作:
sme@server$ touch f1
sme@server$ ls -l f1
-rw-rw---- 1 sme 0 Jun 16 18:46 f1
Run Code Online (Sandbox Code Playgroud)
现在我去我的本地计算机:
lme@local$ umask
0007
lme@local$ mkdir server
lme@local$ sshfs sme@server /home/sme /server/ -o umask=0000
lme@local$ touch server/f2
lme@local$ ls -l server/f2
-rwxrwxrwx 1 lme 1001 0B Jun 16 18:48 server/f2
Run Code Online (Sandbox Code Playgroud)
首先,我注意到我本地的任何用户都拥有 f2 的完全权限。为什么?我将umask其他用户的权限设置为 7,因此他们的文件权限应为 0。
在服务器端检查:
sme@server$ ls f2
-rw-r----- 1 sme 0 Jun 16 18:48 f2
Run Code Online (Sandbox Code Playgroud)
我在服务器上登录后,我没有设置执行权限。我的服务器组无法写入文件。此外,文件的所有者不是本地用户“lme”而是服务器用户“sme”。然后我尝试sshfs在检查后指定我的服务器用户的 uid 和 gid :
# Get server user's id …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下分区方案的 USB 拇指棒:
sdb
sdb1 -> root partition '/'
sdb2 -> /home partition
Run Code Online (Sandbox Code Playgroud)
如果我从 Live CD 启动,或仅从位于我计算机硬件上的当前 Ubuntu 操作系统启动,我可以通过chroot以下方式:
mount /dev/sdb1 /mnt
mount /dev/sdb2 /mnt/home
chroot /mnt /bin/bash
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的提示类似于[root@archiso]. 问题是我想登录我的用户帐户/mnt/home/me,但我不知道该怎么做?另一个目标是从此用户会话启动 X(和任何桌面管理器)。
所以我需要解决的问题如下:
1) 被 chroot 后如何登录我的用户会话?
2)一旦我登录,是否可以启动 X startx,即使我最初登录到我的计算机 Ubunu 操作系统,并且 gnome 会话已经在运行?
我使用gunzip管道分割了一个 gz 文件split:
time gunzip -c file.gz | split -l 500 -d -a 4 - pref_
Run Code Online (Sandbox Code Playgroud)
它会生成以下文件:
pref_0000
pref_0001
Run Code Online (Sandbox Code Playgroud)
我想通过管道传输这些文件以再次压缩它们。我尝试了以下方法:
gunzip -c file.gz | split -l 500 -d -a 4 - pref_ | echo "file produced:" -
# Nothing
gunzip -c file.gz | split -l 500 -d -a 4 - pref_ | echo -
gunzip -c file.gz | split -l 500 -d -a 4 - pref_ | echo
Run Code Online (Sandbox Code Playgroud)
这些不起作用,我如何获得 split 命令的输出?我希望获得生成的文件名。
Unix设置个人环境变量有约定吗?我读到它们应该被放入$HOME/.bash_profile而不是$HOME/.bashrc. 尽管如此,我正在考虑提供一种方法来区分我自己的变量。这样即使我忘记了,我也能一眼看出它是否是我设置的。例如,当我在终端中进行自动完成时,我可以使我的变量以下划线或减号“m”开头,就像C++语言约定之一一样。我知道可能没有绝对的答案,但我想听听一些有助于实现此目的的良好实践和约定:提供一种简单的方法来区分系统环境变量和个人环境变量。
我有一个外部分区 ,/dev/sda其中包含一个 Ubuntu 操作系统。根位于/dev/sda2.
我想从这个操作系统分区访问命令。
我尝试执行以下步骤:
我首先从 Linux U 盘启动(实际上是 Arch Linux)。然后我将目标分区挂载到/mnt我的安装映像的文件夹中:
$ mount /dev/sda2 /mnt
Run Code Online (Sandbox Code Playgroud)
我使用 chroot 来设置根文件夹:
$ chroot /mnt
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
chroot: failed to run command `/usr/bin/zsh` : No such file or directory
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?也许我被 chroot 的手册页误导了:
chroot - run command or interactive shell with special root directory
我首先使用了正确的方法吗?
以下 bash 管道返回 1:
$ false | true
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)
但是,在脚本中执行时它返回 0:
$ cat test.sh
#!/usr/bin/env bash
false | true
echo $?
$ bash test.sh
0
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么吗?
我使用 gdisk 在硬盘上创建了一个 BIOS 启动分区:
$ sudo gdisk /dev/sdb
Command (? for help): p
Disk /dev/sdb: 7821312 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F7F2BE49-B8D8-4910-8E69-381DEBD954DC
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7821278
Partitions will be aligned on 4-sector boundaries
Total free space is 2 sectors (1024 bytes)
Number Start (sector) End (sector) Size Code Name
1 36 7168035 3.4 GiB EF02 BIOS boot partition
2 7168036 …Run Code Online (Sandbox Code Playgroud)