Debian 12 的常用配置项

原创 2024年 9月 6日
标签: LINUX

系列: Debian 12 装系统

最近新安装了一套 Debian 12,记录一些初始化的配置项,已被以后参考。

SSH 登录

在 Debian 全部安装完后,首先修改 /etc/ssh/sshd_config 允许 root 账号登录:

# vi /etc/ssh/sshd_config

修改为:

PermitRootLogin yes

这样就可以方便使用 Windows 的 Terminal 操作了

配置密钥对

将自己本地的公钥添加到远程主机的 ~/.ssh/authorized_keys 文件里,具体做法见 这篇文章

配置国内 apt 源

推荐使用清华大学的镜像源, 配置页面地址:(https://mirror.tuna.tsinghua.edu.cn/help/debian/)

对于 Debian 12, 镜像地址是:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

将上述内容写入 vi /etc/apt/sources.list。然后更新源:

# apt update

安装 sudo

Debian 12 安装完后,不包含 sudo 程序,虽然可以用 su root 切换账号,但是如果有 sudo 还是方便一些

root@gen8:~# apt install sudo

然后再把自己的常用账户添加到 sudo 组:

root@gen8:~# usermod -aG sudo yourname

重新安装 Vim

系统自带的 Vim 是简化版的,一些按键不能识别。执行下面的命令删除:

# apt-get remove vim-common

在执行下面的命令安装 Vim 正式版:

# apt-get install vim

配置 Vim

修改 ~/.vimrc 文件,增加下面的内容,方便编辑代码

set autoindent expandtab tabstop=4 shiftwidth=4
set background=dark
syntax on
colors gruvbox

其中最后一行 gruxbox 是我自己使用的颜色方案。项目地址

gruvbox.vim 文件放在 ~/.vim/colors/目录下。详细操作可以参考 这篇文章

配置静态IP地址

默认系统的 IP 地址是通过 DHCP 协议自动获取的,在安装过程中,没有手动指定的选项。然而我为了使用方便,需要把服务器的IP 固定下来。

先用 ip a 命令查看当前的接口名称:

编辑 /etc/network/interfaces 文件,找到这行注释:# The primary network interface,按照下面的样子修改其下方的配置项:

# The primary network interface
auto eno1
#iface eno1 inet dhcp
iface eno1 inet static
address 192.168.1.xxx
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver  192.168.1.1

具体 IP 地址需要按照具体网络的实际情况调整。

配置 .bashrc

系统自带的 .bashrc 中说明了,PS1 变量已经配好,除非要自己定,不然不需要再 .bashrc 里再配置了。

我习惯看彩色的 hostname, 所以修改了 PS1 变量,并且增加了几个习惯使用的 alias

alias v='source ./.venv/bin/activate'
alias n='nvidia-smi'

配置硬盘分区

我的 sda 硬盘是 1T的,在安装 Debian 12 的过程中,只选择了 80GB 给 根分区 /,剩下的大约 850G 的磁盘空间还没有分配。

pvs 查看物理盘的剩余空间:

root@gen8:~# pvs
  PV         VG      Fmt  Attr PSize   PFree
  /dev/sda5  gen8-vg lvm2 a--  931.03g 856.53g

从上面命令的输出可以看出,/dev/sda5 是 LVM 格式的物理卷, 有一个 Volume Group,名叫 gen8-vg

再用 lvs 查看 Volume Group 情况:

root@gen8:~# lvs -o lv_name,vg_name,lv_size
  LV     VG      LSize   
  home   gen8-vg  48.41g
  root   gen8-vg <25.14g
  swap_1 gen8-vg 976.00m

有三个逻辑卷。

再用 lsblk 命令查看分区情况:

root@gen8:~# lsblk -o name,size,fstype
NAME                  SIZE FSTYPE
sda                 931.5G
├─sda1                487M ext2
├─sda2                  1K
└─sda5                931G LVM2_member
  ├─gen8--vg-root    25.1G ext4
  ├─gen8--vg-swap_1   976M swap
  └─gen8--vg-home    48.4G ext4

fdisk -l 查看结果如下:

Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST1000DM010-2EP1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xdebb8a2a

Device     Boot   Start        End    Sectors  Size Id Type
/dev/sda1  *       2048     999423     997376  487M 83 Linux
/dev/sda2       1001470 1953523711 1952522242  931G  5 Extended
/dev/sda5       1001472 1953523711 1952522240  931G 8e Linux LVM

用图表示,大致如下:

/dev/sda/dev/dev5(VolumeGroup)Logic VolumeLogic Volume...

接下来在 gen8-vg 中新建 Logical Volume,命名为 data,同时使用全部剩余空间。

root@gen8:~# lvcreate -l 100%FREE -n data gen8-vg
  Logical volume "data" created.

再用 lvs 查看 Volume Group 情况:

root@gen8:~# lvs -o lv_name,vg_name,lv_size
  LV     VG      LSize
  data   gen8-vg 856.53g
  home   gen8-vg  48.41g
  root   gen8-vg <25.14g
  swap_1 gen8-vg 976.00m

创建了一个 data 的逻辑卷,然后创建文件格式。用 lfblk 查看:

root@gen8:~# lsblk -o name,size,fstype,mountpoints
NAME                  SIZE FSTYPE      MOUNTPOINTS
sda                 931.5G
├─sda1                487M ext2        /boot
├─sda2                  1K
└─sda5                931G LVM2_member
  ├─gen8--vg-root    25.1G ext4        /
  ├─gen8--vg-swap_1   976M swap        [SWAP]
  ├─gen8--vg-home    48.4G ext4        /home
  └─gen8--vg-data   856.5G

看到新创建的 data 逻辑卷还没有文件系统,再用 lvdisplay 查看信息:

root@gen8:~# lvdisplay
...
  --- Logical volume ---
  LV Path                /dev/gen8-vg/data
  LV Name                data
  VG Name                gen8-vg
  LV UUID                Ulrgp4-9Qd4-Jma2-cBye-qtZd-IW6I-krjmKs
  LV Write Access        read/write
  LV Creation host, time gen8, 2024-09-07 14:54:53 +0800
  LV Status              available
  # open                 0
  LV Size                856.53 GiB
  Current LE             219272
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:3

看出来逻辑卷的路径 (LV Path) 为 /dev/gen8-vg/data,下面为这个逻辑卷创建文件系统。

root@gen8:~# mkfs.ext4 /dev/gen8-vg/data
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 224534528 4k blocks and 56139776 inodes
Filesystem UUID: c23ea5e8-f0ae-4da1-91e9-2b841986a536
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

创建一个目录,作为新建分区的挂载点:

root@gen8:/# mkdir /info
root@gen8:/# mount /dev/gen8-vg/data /info

这时候可以看到成功挂载

root@gen8:/# lsblk -o name,size,fstype,mountpoints
NAME                  SIZE FSTYPE      MOUNTPOINTS
sda                 931.5G
├─sda1                487M ext2        /boot
├─sda2                  1K
└─sda5                931G LVM2_member
  ├─gen8--vg-root    25.1G ext4        /
  ├─gen8--vg-swap_1   976M swap        [SWAP]
  ├─gen8--vg-home    48.4G ext4        /home
  └─gen8--vg-data   856.5G ext4        /info

但是这个 mount 操作结果,只在内存里,没有保存下来。下次重启之后挂载关系就不存在了。需要修改 /etc/fstab 文件。

使用 blkid 命令查看逻辑卷信息:

root@gen8:/tv# blkid
...
/dev/mapper/gen8--vg-data: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4"

编辑 /etc/fstab 文件,加入如下内容:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /tv        ext4    defaults        0       0

执行 mount -a 执行挂载,提示说此次改动并未通知到系统:

root@gen8:/# mount -a
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload.

执行 systemctl daemon-reload 使之生效,重启验证。

root@gen8:/# systemctl daemon-reload
root@gen8:/# reboot

安装 Samba

文件共享协议方便同时在 Windows 10 和 电视机顶盒上访问。据说 Windows 10 访问 NFS 不支持 UTF-8,权衡之下还是安装 Samba 了。

root@gen8:~# apt update
root@gen8:~# apt install samba

从 Windows 10 上传、删除文件时,可能会遇到下面的错误提示:

Windows需要获得 Unix用户\username 在samba共享中删除/移动的权限

错误的原因是 samba 未取得文件(夹)的写权限,解决方法是在 samba 中添加用户,假设文件夹的属主是 username,使用下面的命令

$ sudo smbpasswd -a username

然后重启 samba 服务:

$ sudo systemctl restart smbd

详细的解释可以参考这篇文章:用 Samba 快速搭建文件服务器

配置 VS Code Server

参考这篇文章:解决 VS Code 自动更新版本后卡在连接界面

未完待续

如果您对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

标签: LINUX

系列: Debian 12 装系统

给个免费的赞吧~

精彩评论

本站 是个人网站,采用 署名协议 CC-BY-NC 授权。
欢迎转载,请保留原文链接 https://www.lfhacks.com/tech/debian-configuration/ ,且不得用于商业用途。