20200406のLinuxに関する記事は6件です。

Linuxとは

そもそもLinuxとは?

  • LinuxとはOSの一種である。OSとは、画面操作や情報を渡すなど、コンピュータの土台のようなもの。
  • LinuxはオープンソースのOSであり、オープンソースとは無料で可変可能なプログラムのようなもの。Linuxの機は MacOSやWindowsOSなどとあまり変わらないが、無料で新たにサーバーを立ち上げたり、OSを作ったりすることができる。
  • Linuxの操作はCUIでコマンドを打って操作する。

Linuxコマンド

  • ディレクトリ移動
shell
$ pwd  //作業しているディレクトリを表示

$ cd ディレクト名  //ディレクトリを変更

  • ファイル表示
shell
$ ls  //今いるディレクトリにあるファイルを表示
  • ファイル操作
shell
$ mkdir ディレクトリ名  //ディレクトリを作成
$ cp コピーしたいファイル コピー後の名前  //コピー
$ mv 移動させたいファイル 移動先  //移動
$ rm ファイル名  //削除
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitをソースからコンパイルしてインストールする。

Gitをユーザーのディレクトリにソースからコンパイルしてインストールする。
だいたいhttps://github.com/git/git/blob/master/INSTALL の記述通り。
私の環境ではexpat辺りやdocのコンパイルでエラーが起きたので、
Alternativeな方法でインストールした。

terminal
# ソースのダウンロード
$ curl -LO https://github.com/git/git/archive/v2.26.0.tar.gz

# 展開して展開先に移動
$ tar -xvf v2.26.0.tar.gz
$ cd git-2.26.0/

# configureファイルを作成して、configureする。インストール先は展開したディレクトリ
$ make configure
$ ./configure --prefix=$(pwd)

# makeしてinstall
$ make all
$ make install

# installしたgitのversion確認。
$ bin/git --version
git version 2.26.0

参考:
https://qiita.com/347lionz/items/a18c5b11df45a7c2e67d 

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

tee 

欲張りなコマンド 

コマンドの結果を標準出力したいし、ファイルにも出力
したいと思った時に使えるコマンド

実行例
echo "どっちにも表示できる" | tee test1.txt

標準出力エラーも保存して、画面表示したときに使うやつ

ping host8888 2>&1 | tee pinglog.txt
 ping: unknown host host8888
cat pinglog.txt 
 ping: unknown host host1234

-aをつけると上書きされないで追加できる。

tee [オプション]ファイル名
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

UbuntuをWindows8.1上のVirtualBoxに入れてみた話

経緯

Linuxを使っていると情報通と思われます。JOIの本選競技などでLinuxが使われていることもあり、これに興味を持ちました。

VirtualBoxをインストールしよう

LinuxとWindowsをデュアルブートするのは危険です。Windowsのデータが失われる可能性が高いので。そこで、VirtualBoxの仮想PC上でLinuxを入れることをおすすめします。

参考文献

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

便利なdiffコマンド使い方メモ

ファイルを比較する

diff {ファイルA} {ファイルB}

差分に!をつけて比較する

diff -c {ファイルA} {ファイルB}

大文字と小文字を区別せずに比較する

diff -i {ファイルA} {ファイルB}

ファイルが同一の場合、同一と表示する

diff -s {ファイルA} {ファイルB}

ファイルの中身が異なる場合、中身を表示せずに異なると表示する

diff -q {ファイルA} {ファイルB}

空白を無視してファイルを比較する

diff -w {ファイルA} {ファイルB}

ディレクトリごと比較する

diff -r {ディレクトリA} {ディレクトリB}

中身を表示せずにディレクトリごと比較する

diff -rq {ディレクトリA} {ディレクトリB}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

BootableなLVを作成する

経緯

LVMでセットアップされたUbuntuにおいて、Bootableディスクだけ別のLVにしてみたらどうなるのか検証してみた。

現在のパーティション

root@yayoi:/home/moly# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <9.00 GiB / not usable 0
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              2303
  Free PE               1023
  Allocated PE          1280
  PV UUID               mcw43c-b4ae-beqi-ISBZ-ZqPk-N46i-aGe5C6

root@yayoi:/home/moly# df
Filesystem                        1K-blocks    Used Available Use% Mounted on
udev                                 472920       0    472920   0% /dev
tmpfs                                100896     944     99952   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   4062912 2079568   1757248  55% /
tmpfs                                504464       0    504464   0% /dev/shm
tmpfs                                  5120       0      5120   0% /run/lock
tmpfs                                504464       0    504464   0% /sys/fs/cgroup
/dev/loop0                            89984   89984         0 100% /snap/core/5662
/dev/loop1                            68352   68352         0 100% /snap/lxd/9239
/dev/sda2                            999320  150336    780172  17% /boot
tmpfs                                100892       0    100892   0% /run/user/1000

root@yayoi:/home/moly# file -s /dev/mapper/ubuntu--vg-ubuntu--lv
/dev/mapper/ubuntu--vg-ubuntu--lv: symbolic link to ../dm-0

/dev/mapper/ubuntu--vg-ubuntu--lv: symbolic link to ../dm-0
root@yayoi:/home/moly# file -s /dev/dm-0 # filesystemしらべる
/dev/dm-0: Linux rev 1.0 ext4 filesystem data, UUID=b50c9846-9c89-44c2-b57a-1c0a00c3afa5 (needs journal recovery) (extents) (64bit) (large files) (huge files)

lvをつくる

root@yayoi:/home/moly# lvcreate -L 1G -n  Bootable ubuntu-vg

filesystem

root@yayoi:/home/moly# mkfs.ext4 /dev/ubuntu-vg/Bootable 
mke2fs 1.44.4 (18-Aug-2018)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: ef5bf14a-43fa-4dd3-9441-48e0ea4a0fbf
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376

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

mountする

root@yayoi:/home/moly# mktemp -d
/tmp/tmp.GauV3uu0St
root@yayoi:/home/moly# mount -t ext4 /dev/ubuntu-vg/Bootable /tmp/tmp.GauV3uu0St

gv,lv確認

root@yayoi:/tmp/tmp.GauV3uu0St# lvdisplay
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                oeCuCc-vFAD-p1Pa-PfDK-sk4L-w6cn-ERFBNr
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2019-04-04 15:17:09 +0000
  LV Status              available
  # open                 1
  LV Size                4.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/Bootable
  LV Name                Bootable
  VG Name                ubuntu-vg
  LV UUID                ZPT9Lo-yY7O-WXvW-vVEa-O5xB-xIo5-9rR1qT
  LV Write Access        read/write
  LV Creation host, time yayoi, 2019-04-04 15:24:19 +0000
  LV Status              available
  # open                 1
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

root@yayoi:/tmp/tmp.GauV3uu0St#

grubのmenuentry追加

以下のものを追加.

root@yayoi:/etc/grub.d# cat 99_bootable_lvm
#!/bin/sh
set -e
echo "shitty bootable lvm" >&2

cat << EOF
menuentry "bootable lvm" {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
    insmod lvm
    set root='lvmid/Vgp9Fy-SOA4-Ff5x-sAs4-Bhfg-ppwG-gOf76f/ZPT9Lo-yY7O-WXvW-vVEa-O5xB-xIo5-9rR1qT'
        search --no-floppy --fs-uuid --set=root --hint='lvmid/Vgp9Fy-SOA4-Ff5x-sAs4-Bhfg-ppwG-gOf76f/ZPT9Lo-yY7O-WXvW-vVEa-O5xB-xIo5-9rR1qT' 3ef3a667-f4ed-4399-8f31-11c29ef994eb
        linux   /vmlinuz-4.18.0-17-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro  maybe-ubiquity
        initrd  /initrd.img-4.18.0-17-generic
}
EOF
  • このcfgでは以下に指定するようにgrubのrootを変更して,/bootをさっき追加したLVのBootableからみるように指定している
  • set root='lvmid/Vgp9Fy-SOA4-Ff5x-sAs4-Bhfg-ppwG-gOf76f/ZPT9Lo-yY7O-WXvW-vVEa-O5xB-xIo5-9rR1qT'lvmid/vg-uuid/lv-uuidで指定.
  • searchコマンドでもrootを指定しているけどまあ同じようなもん
  • linuxのrootディレクトリは/dev/mapper/ubuntu--vg-ubuntu--lv => /dev/dm-0

update-grub2

root@yayoi:/etc/grub.d# sudo update-grub2
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-17-generic
Found initrd image: /boot/initrd.img-4.18.0-17-generic
Found linux image: /boot/vmlinuz-4.18.0-10-generic
Found initrd image: /boot/initrd.img-4.18.0-10-generic
shitty bootable lvm
done

bootをコピーする

root@yayoi:/home/moly# cd /tmp/tmp.GauV3uu0St/
root@yayoi:/tmp/tmp.GauV3uu0St# cp -r /boot/* ./

bootしてみる

grubのmenuentryから選ぶとふつうに起動するね

fstabから/bootのマウントをやめてみる!w

fstabを編集して再起動する

root@yayoi:/tmp/tmp.GauV3uu0St# cat /etc/fstab
UUID=b50c9846-9c89-44c2-b57a-1c0a00c3afa5 / ext4 defaults 0 0
#UUID=3ef3a667-f4ed-4399-8f31-11c29ef994eb /boot ext4 defaults 0 0

結果

grubenvは誰が作ったのかしらんけど,とりあえず/bootが見えないかんじで立ち上がった.

最高

root@yayoi:/home/moly# df
Filesystem                        1K-blocks    Used Available Use% Mounted on
udev                                 472920       0    472920   0% /dev
tmpfs                                100896     932     99964   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   4062912 2105112   1731704  55% /
tmpfs                                504464       0    504464   0% /dev/shm
tmpfs                                  5120       0      5120   0% /run/lock
tmpfs                                504464       0    504464   0% /sys/fs/cgroup
/dev/loop0                            89984   89984         0 100% /snap/core/5662
/dev/loop1                            68352   68352         0 100% /snap/lxd/9239
tmpfs                                100892       0    100892   0% /run/user/1000
root@yayoi:/home/moly# tree /boot
/boot
└── grub
    └── grubenv

1 directory, 1 file
root@yayoi:/home/moly# cat /boot/grub/grubenv
# GRUB Environment Block
#######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################root@yayoi:/home/moly#

新しく作ったBootable LVを/bootにマウントする

fstabを変更してreboot

root@yayoi:/home/moly# blkid
/dev/sda2: UUID="3ef3a667-f4ed-4399-8f31-11c29ef994eb" TYPE="ext4" PARTUUID="c0289df7-8720-4474-ae2d-66ed85f9b9a3"
/dev/sda3: UUID="mcw43c-b4ae-beqi-ISBZ-ZqPk-N46i-aGe5C6" TYPE="LVM2_member" PARTUUID="9a3e5412-0c8e-4623-a7ef-9143918a416e"
/dev/mapper/ubuntu--vg-ubuntu--lv: UUID="b50c9846-9c89-44c2-b57a-1c0a00c3afa5" TYPE="ext4"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/mapper/ubuntu--vg-Bootable: UUID="ef5bf14a-43fa-4dd3-9441-48e0ea4a0fbf" TYPE="ext4"
/dev/sda1: PARTUUID="184382b2-05c6-4aa2-9ed6-d350573bfe9f"
root@yayoi:/home/moly# cat /etc/fstab
UUID=b50c9846-9c89-44c2-b57a-1c0a00c3afa5 / ext4 defaults 0 0
#UUID=3ef3a667-f4ed-4399-8f31-11c29ef994eb /boot ext4 defaults 0 0
UUID=ef5bf14a-43fa-4dd3-9441-48e0ea4a0fbf /boot ext4 defaults 0 0

結果

/boot/dev/mapper/ubuntu--vg-Bootableでマウントされている

root@yayoi:/home/moly# df
Filesystem                        1K-blocks    Used Available Use% Mounted on
udev                                 472920       0    472920   0% /dev
tmpfs                                100896     940     99956   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   4062912 2155104   1681712  57% /
tmpfs                                504464       0    504464   0% /dev/shm
tmpfs                                  5120       0      5120   0% /run/lock
tmpfs                                504464       0    504464   0% /sys/fs/cgroup
/dev/loop0                            89984   89984         0 100% /snap/core/5662
/dev/loop1                            68352   68352         0 100% /snap/lxd/9239
/dev/mapper/ubuntu--vg-Bootable      999320  150328    780180  17% /boot
tmpfs                                100892       0    100892   0% /run/user/1000
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む