Linux 下使用 swap 文件系统

Linux file system Linux 下使用 swap 文件系统 检查 swap 空间,先检查一下系统里有没有既存的 swap 文件 swapon -s 如果返回的信息概要是空的,则表示 swap 文件不存在。 确定 swap 文件的大小,单位为 M。将该值乘以 1024 得到块大小。例如,64MB 的 swap 文件的块大小是 65536。 创建 swap 文件,下面使用 dd 命令来创建 Swap 文件。 dd if=/dev/zero of=/swapfile bs=1024 count=4194304 【参数说明】 - if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > - of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file > - bs=bytes:同时设置读入/输出的块大小为bytes个字节 - count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。 创建好 swap 文件,还需要格式化后才能使用。运行命令: mkswap /swapfile 激活 swap ,运行命令: swapon /swapfile 如果要机器重启的时候自动挂载 swap ,那么还需要修改 fstab 配置。 echp '/swapfile swap swap defaults 0 0' >> /etc/fstab 当下一次系统启动时,新的 swap 文件就打开了。 ...

Linux 中出现 Read-only file system

Linux Linux 中出现 Read-only file system 当 Linux 操作系统启动出现 root 用户也无法进行任何的文件写操作时,无论什么用户(包括 root)写文件保存或者删除文件,且对操作文件或目录都有写权限时,还任然报错: E212: Can't open file for writing 或者 Read-only file system。 这种情况下,已经不是权限的问题了,更大的可能是因为当前的文件系统进入了只读模式,所以不能进行写操作。 重新挂载根目录 # 让“/”根文件系统重新挂载并有可读写模式 $ sudo mount -o remount rw / 修复磁盘 # 对报错分区进行检测并尝试修复 $ sudo fsck -y /dev/sda1 转载信息 版权声明:本文为CSDN博主「Aidon-东哥博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u010839779/java/article/details/77062347

Linux 文件权限和 MacOSX 上特殊的权限

Linux [[MacOS]] Linux 文件权限和 MacOSX 上特殊的权限 讲在前头 一般的,互联网相关的工作,如果 jd 上写了熟悉 Linux 开发,那么去面试(初中级)的时候肯定会问到文件权限相关的问题,我一度认为自己足够了解了,仔细看了下相关的资料,还差了一些距离,同时现在更换了开发环境,发现 MacOSX 的权限和 Linux 的文件权限有略微区别,就在此记录下来。 Linux 文件权限的展示 通过 ls -l 输出结果, drwxr-xr-x light staff 1.2 KB Fri Jul 19 14:58:12 2019  . drwxr-xr-x light staff 816 B Mon Jun 24 15:25:52 2019  .. .rw-r--r-- light staff 8 KB Wed Feb 13 11:34:02 2019  .DS_Store .rw-r--r-- light staff 3.1 KB Tue Jun 18 14:42:46 2019  2019-01-01-some-skills.md .rw-r--r-- light staff 9.6 KB Tue Jun 18 14:42:55 2019  2019-01-02-单元测试浅析.md .rw-r--r-- light staff 2.8 KB Tue Jun 18 14:43:12 2019  2019-01-03-argparse学习.md 可以看到输出结果最左边一列,类似于 -rwxrwxrwx 十个字符就是文件的权限信息。 ...

Linux 登陆欢迎提示信息的设置

Linux Linux 登陆欢迎提示信息的设置 1、/etc/issue /etc/issue 本地登陆显示的信息,本地登录前会提示。 先看下这个文件的内容: #cat /etc/issue Red Hat Enterprise Linux Server release 6.8 (Santiago) Kernel \r on an \m 字符都可以看得懂,但是 \r、\m 是什么意思呢,通过 man pam_issue 可以看出这些转义字符的意思。 字符 含义 \d 本地端时间的日期 \l 显示当前tty的名字即第几个tty \m 显示硬体的架构 (i386/i486/i586/i686…) \n 显示主机的网路名称 \o 显示 domain name \r 当前系统的版本 (相当于 uname -r) \t 显示本地端时间的时间 \u 当前有几个用户在线 \s 当前系统的名称 \v 当前系统的版本 2、/etc/issue.net /etc/issue.net 网络登陆显示的信息,登录后显示,ssh登陆需要由 sshd 配置。 若通过远程本文设备(如通过ssh或telnet等)登录,则显示该文件的内容。 其主要内容和 /etc/issue 类似,可以根据需求调整。 3、/etc/motd /etc/motd 常用于通告信息,如计划关机时间的警告等,登陆后的提示信息,也是用得最多的情况,也是最能玩出花的配置。 它和 issue 的区别在于,后者会在登陆账号前提示,前者会在登陆后出现。 最简单的用法 就是声明机器主权,这对于公司内部的虚拟机来说很重要,登进去弹出一个声明,就不会随意操作了,其次对于网络维护也有极大的作用。 ...

Linux 目录全称及解释

Linux Linux 目录全称及解释 /bin:binaries,存放可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。如果是非系统自带的命令一般在 /usr/bin。 /boot:boot,引导。放置 Linux 系统启动时用到的一些文件。/boot/vmlinuz* 为 Linux 的内核文件。/boot/gurb 存放了引导选项。建议对 /boot/ 单独分区,分区大小100 MB 即可。 /dev:device,设备。存放 Linux 系统下的设备文件。Linux 的一个理念,万物皆文件,所以设备也是文件。访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱。 /etc:etcetera,附加物。系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab(启动项)、/etc/fstab(磁盘分区)、/etc/init.d(启动相关)、/etc/X11(桌面相关)、/etc/sysconfig。 /home:home,家。新创建的用户所持有的目录皆为该目录的子目录。 /lib:libraries,库。系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。/usr/lib,/usr/local/lib 比较重要的目录为 /lib/modules。在该目录下有不少比较重要的子目录和文件,例如 /lib/modules/,/lib/systemd/。一般情况下,不要对该目录下的文件做操作。 /lost+found:lost+found 目录的文件通常是未链接的文件(名字以及被删除),这些文件还被一些进程使用(数据没有删除),在系统突然关机时(内核 panic 或突然断电)出现。这些文件系统会删除的。当因为软件或硬件出现错误,导致文件系统不一致,也有可能把有问题的文件放入到 lost+found 目录。它提供了恢复丢失文件的一种方法。 /media,media,媒体。Linux 中的挂载目录,插入 CD,USB 等存储设备都会被挂载这里。 /mnt:mount,挂载。挂载其他文件系统的目录,例如 iso 文件。 /opt:option,可选。这个目录是一些大型软件的安装目录,或者是一些服务程序的安装目录,和系统其他配置相对独立。 /proc: processes,进程。在这个目录下可以获取到 Linux 系统信息。Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。 /root:root,根。系统管理员 root 的家目录,系统第一个启动的分区为 /,所以最好将 /root 和 / 放置在一个分区下。 /run:run,运行。该目录曾经是 /var/run。文件系统为 tmpfs。/var/run 目录中存放的是自系统启动以来描述系统信息的文件。比较常见的用途是 daemon 进程将自己的 pid 保存到这个目录。 标准要求这个文件夹中的文件必须是在系统启动的时候清空,以便建立新的文件。 /sbin:superuser binaries,超级用户二进制文件。超级管理命令,放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。类似的目录有 /usr/sbin,/usr/local/sbin。 ...

Linux 磁盘相关操作

Linux Linux 磁盘相关操作 查看磁盘 lsblk 查看分区和磁盘 df -h 查看空间使用情况 fdisk -l 分区工具查看分区信息 parted /dev/xxx 查看分区 cfdisk /dev/sda 查看分区 blkid 查看硬盘label(别名) du --max-depth=1 . 统计当前目录各文件夹大小 cat /proc/scsi/scsi 查看 scsi 信息 MegaCli -PDList -aALL 部分 raid 卡硬件信息查看 格式化磁盘 # 分区 fdisk /dev/xxx gdisk /dev/xxx # gpt 分区,支持 2G 以上 help: - n 添加分区 - p 打印分区表 - q 退出,不保存 - w 保存退出 # 格式化 mkfs -t type /dev/xxx # 临时挂载空目录 mount /dev/xxx /path/ # 挂载有数据目录 mkdir /newpath mount /dev/sdb1 /newpath cp -pdr /tmp/* /storage # 拷贝数据到新分区 rm -rf /tmp/* umount /dev/sdb1 mount /dev/sdb1 /tmp # 重新挂载到 /tmp # 永久挂载 vim /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/sda1 during installation UUID=fa031033-be88-4c7e-8cd5-2325c877b181 / ext4 errors=remount-ro 0 1 /swapfile none swap sw 0 0 LVM 挂载磁盘 # 做 LVM 分区 sudo gdisk /dev/xxx n 回车 Hex code:8e00 w y # 做物理卷PV sudo pvcreate /dev/sdd1 pvs # pvs 查看pv # 创建卷组 VG sudo vgcreate -s 32M nickvg /dev/xxx # 创建叫 nickvg 的 vg -l:卷组上允许创建的最大逻辑卷数 -p:卷组中允许添加的最大物理卷数 -s:卷组上的物理卷的PE大小 sudo vgs nickvg # 创建逻辑卷 LV ## 在 nickvg 上创建名称为 nicklv00 的容量为 15G 的 LV sudo lvcreate -L 15G -n nicklv00 nickvg sudo lvs nickvg/nicklv00 # 格式化逻辑卷 sudo mkfs.ext4 /dev/nickvg/nicklv00 # 挂载目录 sudo mkdir /home/xxx sudo mount /dev/nickvg/nicklv00 /home/xxx sudo df -lh # 开机挂载 echo '/dev/mapper/nickvg-nicklv00 /home/doc ext4 defaults 0 0' >> /etc/fstab # 简单脚本 pvcreate /dev/xxx vgcreate -s 32M vg01 /dev/xxx lvcreate -L nT -n lotus vg01 mkfs.ext4 /dev/vg01/lotus rm -rf /opt/lotus mkdir /opt/lotus mount /dev/vg01/lotus /opt/lotus chown -R xxx:xxx /opt/lotus echo '/dev/vg01/lotus /opt/lotus ext4 defaults 0 0' >> /etc/fstab 参考 磁盘阵列划分时LVM的概念和操作 pvcreate命令 centos7.4 fdisk磁盘分区 格式化 挂载 Linux 磁盘分区、格式化、目录挂载 Linux查看硬盘信息

Linux 软 RAID 配置

Linux RAID Linux 软 RAID 配置 最近出了个 PCIe 3.1 x16 转 4 个 X4 M.2 SSD NVME 固态硬盘转接卡,正好一般的主板上只有一个 m.2 接口,难以扩展容量,将整了个转接卡,上面配上 4 个 nvme 的固态盘。 安装好了,在系统内识别成四块独立的 nvme 盘,不便于管理,就想着用软 RAID 实现加速和扩展。单盘理论速度是 3500MB/s,希望 RAID0 之后会有提升。 在 Linux 中通常是使用 md 模块来实现软件 RAID,这个模块系统在 Linux 3.6 之后集成,但是需要手动安装它的管理工具。 安装 mdadm 工具 建立分区表(默认msdos) 指定磁盘分区类型 创建软 raid 盘 格式化磁盘 $ sudo apt install mdadm $ fdisk /dev/nvme0n1 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x7bfec905. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). # 添加新分区 Command (m for help): n Command action e extended p primary partition (1-4) # 选择分区类型 p # 设置分区号 Partition number (1-4): 1 First cylinder (1-5221, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-5221, default 5221): Using default value 5221 # 打印支持的分区格式类型 Command (m for help): l 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 # 更改分区类型 Command (m for help): t Selected partition 1 Hex code (type L to list codes): fd # 设置分区类型为RAID Changed system type of partition 1 to fd (Linux raid autodetect) Command (m for help): p # 打印信息 Disk /dev/sdb: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x7bfec905 Device Boot Start End Blocks Id System /dev/sdb1 1 5221 41937651 fd Linux raid autodetect Command (m for help): w # 保存分区信息 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 至此,准备工作完成了。 ...

Login shell 和 Non-Login shell 的区别

Linux Shell Login shell 和 Non-Login shell 的区别 Difference between Login shell and Non login shell shell 程序,例如 Bash,使用了一系列启动脚本去创建环境。每一个脚本有独特的作用,对登陆环境有不同的影响。后续执行的脚本的可以覆盖先前执行的脚本产生的值。 对于登录Shell和非登录Shell,启动配置有所不同。 Login shells Non login shells Login shells 使用 /bin/login 通过读取 /etc/passwd 文件成功登录后,将启动 Login shell。登录 shell 程序是在登录会话时在用户 ID 下执行的第一个过程。Login 进程告诉 shell 程序遵循以下约定:传递参数0(通常是 shell 程序可执行文件的名称,例如 bash),并带有“-”字符。例如,对于Bash shell,它将是-bash。 当 bash 被调用为 Login shell: -> 登陆进程 调用 /etc/profile -> /etc/profile 调用 /etc/profile.d/ 下的脚本 -> 登陆进程 调用 ~/.bash_profile -> ~/.bash_profile 调用 ~/.bashrc -> ~/.bashrc 调用 /etc/bashrc Login shell 出现包括以下情况: ...

Make 命令使用

Linux Make 命令使用 make 顾名思义就是用于制作的工具,可以制作普通文件,也可以制作二进制文件,也就是说,它可以组织程序的编译过程,得到输出的文件。 基础概念就是:make 命令会查找当前目录下的 Makefile 文件,并根据该文件的指示一步步的去操作,最后创建目标文件。 具体的用法可以参照: Make 的概念 Makefile 文件的格式 Makefile 文件的语法 Makefile 的实例 总体来说,make 本身是不难的,但是基于 makefile 内部的操作是复杂的。makefile 的一大难点是自动变量。

nfs 卸载技巧

Linux file system nfs 卸载技巧 由于 nfs 的网络通信,一般来说,df或者ls等影响到磁盘的命令卡住,甚至卡死是因为 nfs 连接出现了问题。一般来说,要么服务端重启服务或者客户端重启服务就好。退而求其次的方法是umount nfs盘,但往往没办法直接搞定。一般会直接卡住或者提示 device busy。 那么我们就去伪造一个对端,我们可以搞个虚拟机,或者本机网络接口分配一个服务端端的ip,可以ping通。 ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255 #其中 192.0.2.55 是 nfs 服务端的ip ip link set eth0 up 此时我们的机器需要开启nfs服务,Ubuntu的话就 apt install ntfs-kernel-server。 然后再尝试强制卸载 nfs 云盘:umount -fl /your/path。 之后需要把本机配置的 ip 给清掉: ifconfig eth0 del 192.0.2.55 ip link set eth0 down 参考 mount - 强制卸载NFS挂载目录 Linux强制卸载设备 nfs挂载无法卸载