RAID 创建使用
==================
部署 RAID 10 的学习
1. 搭建 RAID 10 就是 RAID 1 加上 RAID 0,准备四块磁盘,用于创建 RAID 10,配置vmware虚拟机,创建四个虚拟硬盘。
2. 检查磁盘信息
root@ubuntu:~# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdc /dev/sdd
root@ubuntu:~# poweroff # 关机
# 配置别名
root@ubuntu:~# sshlocal ssh root@12.68.22.132
# 修改主机名
root@ubuntu:~# hostnamectl set-hostname longchi
root@ubuntu:~# reboot # 重启查看主机名修改生效
root@longchi:~#
# 检查磁盘信息
root@longchi:~# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdc /dev/sdd /dev/sde
root@longchi:~# fdisk -l | grep sd
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 1054719 1050624 513M EFI System
/dev/sda3 1054720 209713151 208658432 99.5G Linux filesystem
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Disk /dev/sdc: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk /dev/sdd: 400 GiB, 429496729600 bytes, 838860800 sectors
Disk /dev/sde: 400 GiB, 429496729600 bytes, 838860800 sectors
root@longchi:~# ls /dev/sd[a-z]
/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde
3.学习 mdadm 用于建设,管理和监控 RAID 技术的命令
# 检查磁盘信息
root@longchi:~# ls /dev/sd[a-z]
/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde
# 安装 mdadm 命令
root@longchi:~# mdadm
Command 'mdadm' not found, but can be installed with:
apt install mdadm
root@longchi:~# apt install mdadm -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
root@longchi:~# mdadm
Usage: mdadm --help
for help
root@longchi:~# mdadm --help
# mdadm 用于构建,管理和监视linux md 设备(别名RAID阵列)
mdadm is used for building, managing, and monitoring
Linux md devices (aka RAID arrays)
# 使用:mdadm --创建设备选项...
Usage: mdadm --create device options...
# 从未使用的设备中创建一个新数组
Create a new array from unused devices.
# --组装设备选项...
mdadm --assemble device options...
# 组装之前创建的数组
Assemble a previously created array.
# --创建设备选项...
mdadm --build device options...
# 创建或组装一个没有元数据的数组
Create or assemble an array without metadata.
# --管理设备选项
mdadm --manage device options...
# 对现有 array 进行更改
make changes to an existing array.
# --混合选项...设备
mdadm --misc options... devices
# 报告或修改各种 md 相关设备
report on or modify various md related devices.
# --增长设备选项
mdadm --grow options device
# 调整/重塑活动数组的大小
resize/reshape an active array
# --增量设备
mdadm --incremental device
# 酌情在数组中添加/删除设备
add/remove a device to/from an array as appropriate
# --监控器选项
mdadm --monitor options...
# 监视一个或多数组的重大变化
Monitor one or more array for significant changes.
# 设备选项...
mdadm device options...
# 管理的简写
Shorthand for --manage.
# 任何不以'-'开头的参数都被视为设备名称
Any parameter that does not start with '-' is treated as a device name
# 或者,对于 --examine-bitmap,一个文件名
or, for --examine-bitmap, a file name.
# 第一个这样的名称通常是 md 设备的名称,后面的名称通常是组件设备的名称
The first such name is often the name of an md device. Subsequent
names are often names of component devices.
# 有关上述主要模式 详细帮助,请使用模式后的帮助
For detailed help on the above major modes use --help after the mode
e.g.
mdadm --assemble --help
# 对于选项使用的一般帮助
For general help on options use
mdadm --help-options
root@longchi:~#
# 创建磁盘阵列使用命令如下 创建 RAID 10 :
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# 该命令参数解释:
# '-C' 表示创建 RAID 阵列
# '-v' 显示创建RAID 的过程
# '/dev/md0' 表示创建 RAID 阵列的名字
# '-a yes' 表示自动激活该设备 '/dev/md0' 自动创建阵列设备文件
# '-n 4' 表示用四块硬盘创建阵列
# '-l 10' 表示指定 RAID 级别为 'RAID 10'
# 最后跟上四块硬盘的名字 如下
# '/dev/sd[b-e]' 表示指定即将使用的磁盘
root@longchi:~# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 209583104K
# 在大阵列上自动启用 write-intent 位图
mdadm: automatically enabling write-intent bitmap on large array
# 最大驱动器(/dev/sdd)超过size(209583104K)
mdadm: largest drive (/dev/sdd) exceeds size (209583104K) by more than 1%
# 继续创建 array ? 是的
Continue creating array? yes
# 默认为 1.2 版本的元数据
mdadm: Defaulting to version 1.2 metadata
# '/dev/md0'已经启动了
mdadm: array /dev/md0 started.
# 查看创建的设备名
root@longchi:~# ls /dev/md0
/dev/md0
# 查看创建设备的详细信息
root@longchi:~# ls /dev/md0 -l
brw-rw---- 1 root disk 9, 0 Feb 20 21:28 /dev/md0 # 'b' 表示设备文件
4. 针对磁盘阵列设备,进行文件系统格式化,将 /dev/md0 格式化为 ntfs (ubuntu),xfs(centos7以上)文件系统
# 该操作系统可以接收的磁盘文件系统格式化有如下 文件系统
root@longchi:~# mkfs.+tab键(tab键为自动补全键)
mkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
# 集群大小已自动设置为 4096 字节,用零初始化设备
root@longchi:~# mkfs.ntfs /dev/md0
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
5. 针对分区进行文件夹挂载,使用磁盘分区,新建一个文件夹,用于和阵列分区进行挂载 mkdir /longchiraid
# 在根目录下创建 /longchiraid 文件夹
root@longchi:~# mkdir /longchiraid
# 查看所创建的文件夹
root@longchi:~# ls /
bin cdrom etc lib lib64 longchiraid media opt root sbin srv sys usr
boot dev home lib32 libx32 lost+found mnt proc run snap swapfile tmp var
6. 使用 mount 命令进行挂载 mount 设备名 挂载点
# 进行挂载
root@longchi:~# mount /dev/md0 /longchiraid
7. 检查挂载情况 mount -l
root@longchi:~# mount -l
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4004784k,nr_inodes=1001196,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=808616k,mode=755,inode64)
/dev/sda3 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=30904)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
ramfs on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
/var/lib/snapd/snaps/bare_5.snap on /snap/bare/5 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/core_16574.snap on /snap/core/16574 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/core20_2105.snap on /snap/core20/2105 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/core20_2182.snap on /snap/core20/2182 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/core22_1033.snap on /snap/core22/1033 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/firefox_3779.snap on /snap/firefox/3779 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/firefox_631.snap on /snap/firefox/631 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gnome-3-38-2004_143.snap on /snap/gnome-3-38-2004/143 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gnome-3-38-2004_76.snap on /snap/gnome-3-38-2004/76 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gnome-42-2204_141.snap on /snap/gnome-42-2204/141 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gtk-common-themes_1519.snap on /snap/gtk-common-themes/1519 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/gtk-common-themes_1535.snap on /snap/gtk-common-themes/1535 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/var/lib/snapd/snaps/snap-store_557.snap on /snap/snap-store/557 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/dev/sda3 on /var/snap/firefox/common/host-hunspell type ext4 (ro,noexec,noatime,errors=remount-ro)
/var/lib/snapd/snaps/snap-store_959.snap on /snap/snap-store/959 type squashfs (ro,nodev,relatime,errors=continue,threads=single,x-gdu.hide)
/dev/sda2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/user/126 type tmpfs (rw,nosuid,nodev,relatime,size=808612k,nr_inodes=202153,mode=700,uid=126,gid=132,inode64)
gvfsd-fuse on /run/user/126/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=126,group_id=132)
/dev/md0 on /longchiraid type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
# 查看设备 /dev/md0 挂载情况
root@longchi:~# mount -l | grep /dev/md0
/dev/md0 on /longchiraid type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
8. 还可以使用 df 命令,检查挂载空间的使用情况 df -hT
root@longchi:~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 790M 1.9M 788M 1% /run
/dev/sda3 ext4 98G 10G 83G 11% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 790M 72K 790M 1% /run/user/126
/dev/md0 fuseblk 400G 77M 400G 1% /longchiraid
# 使用 df -hT | grep md0 命令检查设备 /dev/md0 挂载空间的使用情况
root@longchi:~# df -hT | grep md0
/dev/md0 fuseblk 400G 77M 400G 1% /longchiraid
9. 检查 RAID 10 的详细信息 mdadm -D /dev/md0
root@longchi:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Feb 20 21:28:12 2024
Raid Level : raid10
Array Size : 419166208 (399.75 GiB 429.23 GB) # 总大小400GB
Used Dev Size : 209583104 (199.87 GiB 214.61 GB) # 可用大小200GB
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent #持久化:超级块是持久的
Intent Bitmap : Internal # 内置位图:内置
Update Time : Tue Feb 20 23:27:25 2024
State : clean
Active Devices : 4 # 激活的设备
Working Devices : 4 # 工作的设备
Failed Devices : 0 # 挂掉是0个设备
Spare Devices : 0 # 备份是0个设备
Layout : near=2 # 布局
Chunk Size : 512K # 数据库尺寸
Consistency Policy : bitmap # 一致性策略:位图;点阵图;图片;位映像
Name : longchi:0 (local to host longchi)
UUID : fe258a50:d23511f6:ab65bb52:4dcc42a2
Events : 404 # 事件
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
root@longchi:~#
10. 可以向磁盘阵列中写入数据,检查使用空间
root@longchi:~# cd /longchiraid
root@longchi:/longchiraid# ls
root@longchi:/longchiraid#
# 写入数据
root@longchi:/longchiraid# echo {1..1000000} > test.txt
root@longchi:/longchiraid# ls -l
total 6728
-rwxrwxrwx 1 root root 6888896 Feb 21 02:10 test.txt
root@longchi:/longchiraid# ll -h
total 6.6M
drwxrwxrwx 1 root root 4.0K Feb 21 02:10 ./
drwxr-xr-x 21 root root 4.0K Feb 20 23:41 ../
-rwxrwxrwx 1 root root 6.6M Feb 21 02:10 test.txt*
# 追加写入数据
root@longchi:/longchiraid# echo {1..3000000} >> test.txt
root@longchi:/longchiraid# ll -ah
total 29M
drwxrwxrwx 1 root root 4.0K Feb 21 02:10 ./
drwxr-xr-x 21 root root 4.0K Feb 20 23:41 ../
-rwxrwxrwx 1 root root 29M Feb 21 02:12 test.txt*
root@longchi:/longchiraid# echo {1..9000000} >> test.txt
root@longchi:/longchiraid# ll -iah
total 97M
5 drwxrwxrwx 1 root root 4.0K Feb 21 02:10 ./
2 drwxr-xr-x 21 root root 4.0K Feb 20 23:41 ../
64 -rwxrwxrwx 1 root root 97M Feb 21 02:14 test.txt*
# 检查当前所有文件的大小 du -h ./* 命令
root@longchi:/longchiraid# echo {1..8000000} >> test.txt
root@longchi:/longchiraid# du -h ./*
156M ./test.txt
# 使用 df 命令,检查挂载空间的使用情况 df -hT
root@longchi:/longchiraid# df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 790M 1.9M 788M 1% /run
/dev/sda3 ext4 98G 10G 83G 11% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 790M 72K 790M 1% /run/user/126
/dev/md0 fuseblk 400G 233M 400G 1% /longchiraid
root@longchi:/longchiraid# df -hT | grep md0
/dev/md0 fuseblk 400G 233M 400G 1% /longchiraid
root@longchi:/longchiraid#
11. 取消挂载,查看文件夹情况
# 必须退出挂载的文件,才可以取消挂载
root@longchi:/longchiraid# umount /dev/md0
root@longchi:/longchiraid# /longchiraid
umount: /longchiraid: target is busy.
umount: /longchiraid: target is busy.
# 取消挂载设备或者取消挂载点 都可以达到取消挂载的目的
root@longchi:~# umount /dev/md0 # 取消挂载之后,无法使用磁盘阵列分区的空间,还得重新挂载
umount: /dev/md0: not mounted.
root@longchi:~# umount /longchiraid
umount: /dev/md0: not mounted.
# 使用 df -hT 命令,检查挂载空间的使用情况,可以看出取消挂载以后,设备 /dev/md0 就看不到了
root@longchi:~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 790M 1.9M 788M 1% /run
/dev/sda3 ext4 98G 10G 83G 11% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 790M 72K 790M 1% /run/user/126
# 此时文件加 /longchiraid 里面什么都没有了
root@longchi:~# ls /longchiraid
root@longchi:~#
# 再次挂载 就可以看到 /dev/md0 设备上的 test.txt 文件。 挂载点文件又回来了
root@longchi:~# mount /dev/md0 /longchiraid
root@longchi:~# ls /longchiraid
test.txt
12. 把磁盘阵列的分区设备,加入到开机挂载文件( /etc/fstab )中,每次重启后,自动挂载使用了。
将 '/dev/md0 /longchiraid ntfs defaults 0 0'加入到 /etc/fstab 文件最后一行
# 查看 开机挂载文件 cat /etc/fstab
root@longchi:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda3 during installation
UUID=1d8e3f92-eeaf-4cde-a566-1c7eea428509 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda2 during installation
UUID=FEB1-E722 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
# 将 '/dev/md0 /longchiraid ntfs defaults 0 0'加入到 /etc/fstab 文件最后一行
root@longchi:~# vim /etc/fstab
root@longchi:~# tail -1 /etc/fstab
/dev/md0 /longchiraid ntfs defaults 0 0
ubuntu安装和使用zfs文件系统
1、什么是zfs文件系统,为什么要使用
1. ZFS(Zettabyte File System)文件系统也叫动态文件系统(Dynamic File System),是第一个128位文件系统。ZFS 强健、可伸缩,且易于管理。
2. ZFS 使用存储池的概念来管理物理存储。ZFS 将设备聚集到存储池中,而不是强制要求创建虚拟卷。
3. 存储池描述了存储的物理特征(设备布局、数据冗余等),并充当可以从其创建文件系统的任意数据存储库。文件系统不再受限于单个设备,允许它们与池中的所有文件系统共享磁盘空间。
2、常用命令
2.1、RAID0 想必大家都知道,它只是将所有磁盘驱动器集成到一个巨大的存储空间而已。它可以提高驱动器读写速度,但无数据容错能力,只要有其中一块磁盘坏掉,就会有数据丢失。 创建raid0命令如下 创建了一个名为 tank 的新池,该池由磁盘 /dev/sdc 和/dev/sdd组成
sudo zpool create tank /dev/sdc /dev/sdd
2.2、使用 mirror 关键字就可以实现 ZFS 的 RAID1 功能,RAID1 不用多介绍了吧,就是创建硬盘的 1 对 1 副本。这样不仅可以有数据的完整备份副本,同时还可以提高读写性能。当然,物理磁盘的总存储空间量也会减半。 创建raid1命令如下
sudo zpool create tank mirror /dev/sdc /dev/sdd
2.3、RAID5(RAIDZ1) ZFS 将 RAID5 功能实现为 RAIDZ1。RAID5 要求驱动器的倍数为 3 , 其中 1/3 的空间用于写入奇偶校验数据,并保留 2/3 的数据存储空间。如果其中一个驱动器出现故障, 阵列将保持联机状态, 但应尽快更换故障磁盘。 创建raid5命令如下
sudo zpool create tank raidz1 /dev/sdc /dev/sdd /dev/sde
2.4、RAID6(RAIDZ2) RAID6 与 RAID5 类似,但它的工作原理是磁盘数量的 4 倍,而非 3 倍。 它使用 2 倍的奇偶校验数据,允许最多 2 个驱动器故障。 创建raid6命令如下
sudo zpool create tank raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf
2.5、RAID10 RAID10 旨在读写速度提升和数据冗余与条带化,需要至少 4 块磁盘的倍数,而且只有一半的数据存储空间,可通过创建两个镜像的方式来创建 RAID10。 创建raid10命令如下
sudo zpool create tank mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
2.6、其它常用命令 1、查看存储池状态
sudo zpool status
2、查看存储池列表
sudo zpool list
3、向存储池添加设备
sudo zpool add tank c2t1d0
向存储池tank中添加设备 4、销毁存储池
sudo zpool destroy zpoolname
5、查看 ZFS 存储池的 I/O 统计信息
sudo zpool iostat
6、恢复zpool
sudo zpool import
3、安装
安装zfs文件系统
sudo apt install zfsutils-linux -y
创建存储池,我这里有4个硬盘所以创建raid10 ,创建一个名为tank的池
sudo zpool create tank mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
创建L2ARC/Zil 缓存,我创建了一个raid1做zil缓存,
zfs set sync=always tank
zpool add tank log mirror /dev/sdd /dev/sde
创建L2ARC
zpool add tank cache /dev/sdx
文章知识点与官方知识档案匹配,可进一步学习相关知识
Ubuntu软件安装
1、APP Store安装 2、使用APT安装工具安装
需要sudo(root权限) 1.打开终端 2.输入指令 sudo apt-get install [软件名称]
3、deb软件包安装
使用dpkg命令安装deb安装包(Windows下安装的是.exe文件,在Ubuntu下安装的是.deb文件) sudo dpkg -i xxx.deb
4、自己下载程序源码编译安装
下载源码,提取到此处,进入提取出的文件 make make install
二、Ubuntu文件系统结构
1、根目录"/"
Linux下"/"就是根目录,所有目录都是由根目录衍生出来的
2、/bin目录
存放二进制可执行文件,在单目录下也能够使用
3、/boot目录
Ubuntu内核和启动文件
4、/dev目录
设备驱动文件
5、/etc目录
存放一些系统配置文件,比如用户账号和密码文件,各种服务器的起始地址
6、/home目录
系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文件夹都会放到此目录下
7、/lib目录
存放库文件
8、/media目录
此目录下放置可插拔设备,比如SD卡或者U盘就是挂载到这个目录中。
9、/mnt目录
用户可使用的挂载点,如果要挂载一些额外的设备,那么就可以挂载到此处。
10、/opt目录
可选的文件和程序存放目录,给第三方软件放置的目录
11、/root目录
root用户目录,也就是系统管理员目录
12、/sbin目录
和/bin类似,存放一些二进制可执行文件。/sbin下面的一般是系统开机过程中所需要的命令
13、/srv目录
服务相关目录,比如网络服务
14、/sys目录
记录内核信息,虚拟文件系统
15、/tmp
临时目录
16、/var
存放一些变化的文件,比如日志文件
17、/usr
usr不是user的缩写,而是UNIX Software Resource的缩写,存放系统用户有关的文件,会占用很大的存储空间
18、/proc
虚拟文件系统,数据放置到内存中,存放系统运行信息
19、绝对路径与相对路径
绝对路径:从根目录"/"算起的路径 相对路径:相对于目前路径的文件名写法 ".“代表当前路径,也可以用”./"表示 "…“代表上一层目录,也可以用”…/"表示
三、Ubuntu下的磁盘管理
1、Ubuntu磁盘文件
/dev/sd*文件,此类文件是硬盘设备文件,并不能直接访问硬盘,必须要将硬盘挂载到某一个目录下才可以访问。 /dev/sdb和/dev/sdb*是U盘的设备文件 /dev/sdb表示U盘,/dev/sdv*表示U盘的分区
2、磁盘和目录的容量查询命令
df
du
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或–dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的文件。
-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显示总计。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。
3、磁盘的挂载与卸载,分区与格式化
1、mount
mount用于挂载Linux系统外的文件
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r:等于 -o ro
-w:等于 -o rw
-L:将含有特定标签的硬盘分割挂上。
-U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync:在同步模式下执行。
-o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto、-o noauto:打开/关闭自动挂上模式。
-o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允许执行档被执行。
-o suid、-o nosuid:
允许执行档在 root 权限下执行。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。
-o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro:用唯读模式挂上。
-o rw:用可读写模式挂上。
-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统
2、umount
umount命令用于卸除文件系统。
umount可卸除目前挂在Linux目录中的文件系统。
umount [-ahnrvV][-t <文件系统类型>][文件系统]
-a 卸除/etc/mtab中记录的所有文件系统。
-h 显示帮助。
-n 卸除时不要将信息存入/etc/mtab文件中。
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t<文件系统类型> 仅卸除选项中所指定的文件系统。
-v 执行时显示详细的信息。
-V 显示版本信息。
[文件系统] 除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。
3、fdisk
fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。
fdisk [必要参数][选择参数]
必要参数:
-l 列出素所有分区表
-u 与 -l 搭配使用,显示分区数目
选择参数:
-s<分区编号> 指定分区
-v 版本信息
菜单操作说明:
m :显示菜单和帮助信息
a :活动分区标记/引导分区
d :删除分区
l :显示分区类型
n :新建分区
p :显示分区信息
q :退出不保存
t :设置分区号
v :进行分区检查
w :保存修改
x :扩展应用,高级功能
4、mkfs
mkfs命令用于在特定的分区上建立 linux 文件系统。
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
device : 预备检查的硬盘分区,例如:/dev/sda1
-V : 详细显示模式
-t : 给定档案系统的型式,Linux 的预设值为 ext2
-c : 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
block : 给定 block 的大小
四、压缩与解压缩
Linux下常用的压缩扩展名有:.tar、.tar.bz2、.tar.gz
一、Windows下7ZIP软件的安装
因为Linux下很多文件是.bz2,.gz结尾的压缩文件,因此需要在windows下安装7ZIP软件。
二、gzip压缩工具
.gzip工具负责压缩和解压缩.gz格式的压缩包。
gzip对文件进行压缩
gzip xxx //压缩 gzip -d xxx.gz //解压缩
gzip对文件夹进行压缩
gzip -rd xxx.gz //对文件夹进行解压缩 gzip -r xxx //对文件夹进行压缩
gzip虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。
三、bzip2压缩工具
和gzip类似,只是bzip2工具负责压缩和解压缩.bz2格式的压缩包。
bzip2 -d xxx.gz //解压缩 bzip2 -z xxx //压缩
四、tar打包工具
tar工具参数:
-f,使用归档文件或 ARCHIVE 设备
-c:创建新归档,创建压缩文件
-x:从图档中解出文件,解压缩
-j:使用bzip2压缩格式。
-z:使用gzip压缩格式
-v:打印出命令执行过程。
tar工具提供打包服务,就是将多个文件打包,比如
tar -vcf test.tar test //将test打包成test.tar tar -vxf test.tar //解包
上面的tar命令只提供了打包和解包的功能,tar在提供打包和解包的同时使用gzip/bzip2进行压缩,实现类似Windwos下winRAR软件的命令。
1、对.tar.bz2进行压缩和解压缩
tar -vxjf xxx.tar.bz2 解压缩
tar -vcjf xxx.tar.bz2 xxx 压缩
2、对.tar.gz进行压缩和解压缩
tar -vxzf xxx.tar.gz //解压缩
tar -vczf xxx.tar.gz xxx //压缩
五、其他格式的压缩和解压缩
1、.rar格式 需要先安装rar:sudo apt-get install rar
rar x xxx.rar //解压缩
rar a xxx.rar xxx //压缩
2、.zip格式
zip格式压缩使用“zip“命令:
zip -rv xxx.zip xxx
zip格式解压缩使用“unzip”命令:
unzip -v xxx.zip