We have years of knowledge with technology, especially in the IT (Information Technology) industry.
realtechtalk.com will always have fresh and useful information on a variety of subjects from Graphic Design, Server Administration, Web Hosting Industry and much more.
This site will specialize in unique topics and problems faced by web hosts, Unix/Linux administrators, web developers, computer technicians, hardware, networking, scripting, web design and much more. The aim of this site is to explain common problems and solutions in a simple way. Forums are ineffective because they have a lot of talk, but it's hard to find the answer you're looking for, and as we know, the answer is usually not there. No one has time to scour the net for forums and read pages of irrelevant information on different forums/threads. RTT just gives you what you're looking for.nvidia-smi
Tue Apr 7 15:48:11 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.211.01 Driver Version: 570.211.01 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Tesla M40 24GB Off | 00000000:05:00.0 Off | 0 |
| N/A 29C P0 56W / 250W | 0MiB / 23040MiB | 57% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
nvidia-smi -pm 1
Enabled Legacy persistence mode for GPU 00000000:05:00.0.
All done.
Tue Apr 7 15:50:46 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.211.01 Driver Version: 570.211.01 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Tesla M40 24GB On | 00000000:05:00.0 Off | 0 |
| N/A 30C P0 60W / 250W | 0MiB / 23040MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
It's very convenient that ffmpeg can also handle audio manipulation too.
Just modify the command below, We set the volume to 18.64db, so you can adjust to whatever you need.
ffmpeg -i input.mp4 -filter:a "loudnorm=I=-18.64:TP=-1.5:LRA=11" -c:v copy output.mp4
output.mp4 will now be normalized to whatever do you specified above.
This usually happens because kdenlive is not smart enough to deal with multiple types of files, especially different frequency.
If you take a 44.1khz audio track and then add a 48khz track, you will definitely get the pops and clicks.
Use a tool like audacity or similar to do two things, flatten the audio tracks to mono and at least make sure both tracks have the same frequency.
I recommend changing both to 44.1khz.
After I did this and reimported the tracks back to kdenlive, I had no more popping.
A lot of times I've seen questions about how this works when you have multiple nodes or a CDN, it can be quite tricky in theory if you have random IPs or several IPs.
The way certbot works at least for non-DNS challenges is that it will hit a random server that it resolves to, you have no control over which one it hits.
If certbot hits node 1 at first to tell it to create the well-known file, then checks node 2 or any other node, you will find auhorization fails.
Here is an example of this happening:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Requesting a certificate for yourdomain.com
Performing the following challenges:
http-01 challenge for yourdomain.com
Using the webroot path /var/www/haproxy for all unmatched domains.
Waiting for verification...
Challenge failed for domain yourdomain.com
http-01 challenge for yourdomain.com
Cleaning up challenges
Some challenges have failed.
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: yourdomain.com
Type: connection
Detail: During secondary validation: 192.168.80.166: Fetching
http://yourdomain.com/.well-known/acme-challenge/nUKlCCEWf-HzUgrnLvPXZLQjmXUCOi4gC74jtRYbqp4:
Connection refused
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
The simplest solution is to just redirect ALL requests to a single node IP. That means all node IPs but the "main IP" let's call it 1.2.3.4, it means all other node IPs that get an .acme-challenge/well-known need to be redirected to 1.2.3.4 and then your problem is solved.
Eg. in haproxy do this on all but the node with the 1.2.3.4 IP.
backend letsencrypt
server letsencrypt 1.2.3.4:80
If you do something like above, then it now means all requests will work because they are transparently redirected to a single server.
Other solutions that may be more practical could be DNS if you control it, or if you really want to be fancy, you could use shared storage for the challenges that exist on all proxy/CDN nodes.
If you run nginx behind a CDN, you will by default see the proxy/CDN IP instead of the real client.
# 1. Specify the IP address of your trusted proxy/load balancer
set_real_ip_from 1.2.3.4;
set_real_ip_from 5.2.3.4;
# 2. Specify which header contains the real client IP
real_ip_header X-Forwarded-For;
# 3. Optional: Use 'real_ip_recursive' if you have multiple proxies
real_ip_recursive on;
In #1 you can of course specify multiple IP lines and even ranges.
Now you'll see in access.log that you get the real client IPs.
If you do a top on your Docker host, you may find a process for apache2 is PID 1234 but that is not the same as ID as in your container due to separation of processes and memory from the main host.
Here is how you find the real PID within the docker container.
cat /proc/1234/status|grep NSpid
NSpid: 1234 125172
The first ID we already know, it is 1234 the parentID but the second ID is the ID of the process as seen inside the actual docker container.
Yes, it's real and it is not easy to reset the password. You will find conflicting information on the password requirements even with the same page it implies you need 2 examples of uppercase, lowercase, punctuation/symbols and numbers but that is false.
It is compounded worse that it never gives you the correct information below unless you are in private mode in your browser.
Do not use spaces, do not use special symbols or it will reject the password as: Setup does not meet the requirements, please resetting
If you can not sign in, please go to the Sign In page and click "Forgot Password?" to reset password.
When creating your new password, please ensure it is 6-20 characters long and contains at least two types from uppercase letters, lowercase letters, numbers, and punctuation.
Usually 80mhz for faster speed in 5G is not enabled in these drivers by default, so your speeds are about half of what they should or could be on 802.11ac.
If you try to enable 80mhz you will get errors like this from hostapd:
hostapd[2889289]: Configured VHT capability [VHT_CAP_SUPP_CHAN_WIDTH_MASK] exceeds max value supported by the driver (2 > 0)
edit this file: /etc/modprobe.d/8821au.conf
The default in most 88XX drivers is something like below:
options 8821au rtw_drv_log_level=1 rtw_led_ctrl=1 rtw_vht_enable=1 rtw_power_mgnt=1
Change rtw_vht_enable=1 to 2 to enable 80MHz
options 8821au rtw_drv_log_level=1 rtw_led_ctrl=1 rtw_vht_enable=2 rtw_power_mgnt=1
Once you change the above you should be able to enable 80mhz mode in hostapd. See some example configs here:
After doing this I was able to get up to 866mbit connectivity and real throughput of 500mbit.
This is based off the LinuxServer Mastodon Image and I believe this simplifies the bare basics of get things going because Mastodon is fairly complex but well worth the effort.
For me, it's about having social freedom, when you use big tech there are MANY negative things that happen.
1.) They tap and mine all of your data for profit.
2.) You have 0 privacy and 0 benefits (no possible profits).
3.) 0 control over your social future, they can shadow ban you, content strike you, or directly ban or delete you at any point for any reason with 0 recourse.
4.) If you get hacked there is 0 recourse or at least not timely recovery. Some argue that some of the "big tech" platforms are made to be exploited and some report never getting back in.
With Mastodon you are now in control of your own social future, if you get hacked just redeploy your Mastodon server, no worrying about Zombie account run by hackers/state actors is being used to target and hack your contacts.
And finally no one can really censor you, perhaps some of the Mastodon servers could try to blacklist you but your contacts can always connect to you and see your posts no matter what happens.
https://docs.joinmastodon.org/user/run-your-own/
1.) Docker
If you need to learn about Docker follow our tutorial here.
2.) A domain name. Buy one if you don't have one already.
3.) A public IP that your domain points to with a DNS A Record.
4.) A server to run Docker on, many will start by using a VPS.
RAM: 4GB minimum (8G+ recommended and scale as your server grows)
Disk Space: 60G (scale as you grow)
We can see it uses about 1.2G of RAM.
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
123 mymasto 0.75% 1.203GiB / 488.7GiB 0.64% 13.1MB / 6.99MB 3.76MB / 235MB 89
docker network create testnet
Of course change "testnet" to whatever you want to call your docker network. Adjust later in the mastodon docker command.
PostgreSQL Setup:
docker run -d
--name=db
--network=testnet
-e POSTGRES_DB=mastodon
-e POSTGRES_USER=mastodon
-e POSTGRES_PASSWORD=mastodon
-v $(pwd)/postgres-data:/var/lib/postgresql/data
--restart unless-stopped
postgres:15-alpine
Redis container Setup:
docker run -d --name=redis --network=testnet redis:7-alpine
A series of keys are required for Mastodon to function which are:
What we will do is create those keys and then assign them as variables in our shell/terminal so the command I provide "just works".
Create secret key base and otp secret:
secretkeybase=`openssl rand -hex 32`
otpsecret=`openssl rand -base64 24 | tr -d '+/=' | cut -c1-32`
Create VAPID Keys
docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-vapid
VAPID_PRIVATE_KEY=L0NFoPp88NF1Bztfm6oB5av8CCxRTdtC0TotPq2l0sM=
VAPID_PUBLIC_KEY=BCpd6zkBm2vAlYOcLLm3xDh0Nwoqn1-iFHk4Ga2_MbKOuPg4qu9oMaYB11AEFjIYwMO9unHuweexmn5-_Qt3mek=
Copy and paste your output/those variables above to your shell or the next steps will not work. Do not copy our example above!
docker run --rm -it --entrypoint /bin/bash lscr.io/linuxserver/mastodon:latest generate-active-record
Add the following secret environment variables to your Mastodon environment (e.g. .env.production), ensure they are shared across all your nodes and do not change them after they are set:
# Do NOT change these variables once they are set
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=d32iIjMgcSeePIwKGTHo699SO6VZE1br
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=7C1l6CGfAF5phaHZ1xeMP9DY5UN9VyOm
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=ey66K7Rpz40iMXdTqkn3DWGOxf62wEvX
Copy and paste your output/those variables above to your shell or the next steps will not work. Do not copy our example above!
Remember to update --network=testnet if your network is not "testnet".
Update local_domain and web_domain to "thedomain.com" that you bought and pointed to your server.
docker run -d
--network=testnet
--name=mastodon
-e PUID=1000
-e PGID=1000
-e TZ=Etc/UTC
-e LOCAL_DOMAIN=example.com
-e REDIS_HOST=redis
-e REDIS_PORT=6379
-e DB_HOST=db
-e DB_USER=mastodon
-e DB_NAME=mastodon
-e DB_PASS=mastodon
-e DB_PORT=5432
-e ES_ENABLED=false
-e ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY="$ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY"
-e ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY="$ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY"
-e ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT="$ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT"
-e SECRET_KEY_BASE="$secretkeybase"
-e OTP_SECRET="$otpsecret"
-e VAPID_PRIVATE_KEY="$VAPID_PRIVATE_KEY"
-e VAPID_PUBLIC_KEY="$VAPID_PUBLIC_KEY"
-e SMTP_SERVER=mail.example.com
-e SMTP_PORT=25
-e SMTP_LOGIN=
-e SMTP_PASSWORD=
-e SMTP_FROM_ADDRESS=notifications@example.com
-e S3_ENABLED=false
-e WEB_DOMAIN=mastodon.example.com `#optional`
-p 80:80
-p 443:443
-p 9394:9394 `#optional`
-v /path/to/mastodon/config:/config
--restart unless-stopped
lscr.io/linuxserver/mastodon:latest
If this Mastodon is ONLY for you, then I recommend setting this environment variable too:
-e SINGLE_USER_MODE=true
That makes it so the server is in single user mode, so when you visit mastodon.example.com your main Mastodon/root page it will show all of your posts, otherwise users will see nothing unless they know your explicit account name/handle.
If all went well, you should be able to browse to "yourdomain.com" and see something like below:

First create your admin user account and change "yourusername" to the username you want and of course "you@mail.com" to your e-mail address.
docker exec -it mastodon /tootctl accounts create yourusername --email you@mail.com --confirmed --role Owner
INFO 2026-02-09T07:16:55.002Z pid=759 tid=1xj: Sidekiq 8.0.9 connecting to Redis with options {size: 10, pool_name: "internal", url: "redis://redis:6379/0", driver: :hiredis}
OK
New password: yourautocreatedpass
The account won't work until you set it to "approved":
docker exec -it mastodon /tootctl accounts modify youruser --approve
OK
After that go to your mastodon domain and click login, use the e-mail address you set and the autogenerated password from earlier.

Aside from posting, you may want to join some relays to help blast out your posts to other Mastodon servers. Visibility will mainly be determined by hashtag #s.
First find a relay you want at a place like relaylist.com
Copy and paste the URL that says "Mastodon Endpoint" eg. below you would use "https://relay.toot.io/inbox" don't just use the raw relay.toot.io as that is not the right URL and you will not get added if you use that wrong non Mastodon endpoint URL.

Go to your admin panel, then click "Administration" and then "Relays" and click the "Add new relay" button.

Now click "Add new relay"

Paste the URL of the relay endpoint and click "Save and Enable"

Now you can see your relay status and which ones are approved/active.

You can search content aggregators like https://joinmastodon.org/servers to find other servers of like minded people and then follow them and start commenting to get found. You can still comment and follow users from other servers even though you are not part of their server since "Mastodon's talk to each other".
Of course use any legacy/censored social media platforms to let all of your friends know about your Mastodon and encourage them to get their own. Even without your own server, such as joining mastodon.social is much better because you can at least save and export your account at any point which means you have full control over your content and can restore at will on your own Mastodon or another Mastodon server.
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x6709 not found, selecting one more font for (Sans, 700, 0)
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x4E9B not found, selecting one more font for (Sans, 700, 0)
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x4EBA not found, selecting one more font for (Sans, 700, 0)
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x505A not found, selecting one more font for (Sans, 700, 0)
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x5BF9 not found, selecting one more font for (Sans, 700, 0)
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x4E86 not found, selecting one more font for (Sans, 700, 0)
[Parsed_subtitles_0 @ 0x561d3a0b3b80] Glyph 0x6211 not found, selecting one more font for (Sans, 700, 0)
You may assume you don't have the Sans font or something is wrong with that, but it is usually you don't have the fonts package for the language you need. For example for Mandarin/Asian language install below.
apt install fonts-noto-cjk fonts-wqy-microhei
If in production and you are lazy just do this and install all possible font languages:
apt install fonts-*
Currently you are looking at about 4G of space but this is worth it if you will be using several different languages.
apt install fonts-*
Get:1 http://deb.debian.org/debian bullseye InRelease [75.1 kB]
Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [27.2 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.0 kB]
Get:4 http://deb.debian.org/debian bullseye/main amd64 Packages [8066 kB]
Get:5 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [444 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [18.8 kB]
Fetched 8675 kB in 2s (3618 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
18 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'fonts-cantarell' for glob 'fonts-*'
Note, selecting 'fonts-hack-web' for glob 'fonts-*'
Note, selecting 'fonts-ipaexfont-gothic' for glob 'fonts-*'
Note, selecting 'fonts-sil-andika' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-purisa-ttf' for glob 'fonts-*'
Note, selecting 'fonts-tibetan-machine' for glob 'fonts-*'
Note, selecting 'fonts-quattrocento' for glob 'fonts-*'
Note, selecting 'fonts-kacst-one' for glob 'fonts-*'
Note, selecting 'fonts-adf-berenis' for glob 'fonts-*'
Note, selecting 'fonts-jura' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-waree-otf' for glob 'fonts-*'
Note, selecting 'fonts-lohit-beng-bengali' for glob 'fonts-*'
Note, selecting 'fonts-eurofurence' for glob 'fonts-*'
Note, selecting 'fonts-thai-tlwg-otf' for glob 'fonts-*'
Note, selecting 'fonts-cwtex-yen' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-mono' for glob 'fonts-*'
Note, selecting 'fonts-gfs-complutum' for glob 'fonts-*'
Note, selecting 'fonts-train' for glob 'fonts-*'
Note, selecting 'fonts-sil-gentium' for glob 'fonts-*'
Note, selecting 'fonts-smc-dyuthi' for glob 'fonts-*'
Note, selecting 'fonts-apropal' for glob 'fonts-*'
Note, selecting 'fonts-thai-tlwg' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-sawasdee-otf' for glob 'fonts-*'
Note, selecting 'fonts-oxygen' for glob 'fonts-*'
Note, selecting 'fonts-kiloji' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-waree-ttf' for glob 'fonts-*'
Note, selecting 'fonts-cmu' for glob 'fonts-*'
Note, selecting 'fonts-thai-tlwg-ttf' for glob 'fonts-*'
Note, selecting 'fonts-sil-gentiumplus-compact' for glob 'fonts-*'
Note, selecting 'fonts-courier-prime' for glob 'fonts-*'
Note, selecting 'fonts-okolaks' for glob 'fonts-*'
Note, selecting 'fonts-adf-tribun' for glob 'fonts-*'
Note, selecting 'fonts-smc-meera' for glob 'fonts-*'
Note, selecting 'fonts-anonymous-pro' for glob 'fonts-*'
Note, selecting 'fonts-play' for glob 'fonts-*'
Note, selecting 'fonts-thai-tlwg-web' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-kinnari' for glob 'fonts-*'
Note, selecting 'fonts-femkeklaver' for glob 'fonts-*'
Note, selecting 'fonts-sil-harmattan' for glob 'fonts-*'
Note, selecting 'fonts-teluguvijayam' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-sawasdee' for glob 'fonts-*'
Note, selecting 'fonts-dosis' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-sawasdee-ttf' for glob 'fonts-*'
Note, selecting 'fonts-dkg-handwriting' for glob 'fonts-*'
Note, selecting 'fonts-proggy' for glob 'fonts-*'
Note, selecting 'fonts-ipaexfont' for glob 'fonts-*'
Note, selecting 'fonts-gfs-solomos' for glob 'fonts-*'
Note, selecting 'fonts-yozvox-yozfont-new-kana' for glob 'fonts-*'
Note, selecting 'fonts-smc-suruma' for glob 'fonts-*'
Note, selecting 'fonts-umeplus-cl' for glob 'fonts-*'
Note, selecting 'fonts-terminus' for glob 'fonts-*'
Note, selecting 'fonts-komatuna' for glob 'fonts-*'
Note, selecting 'fonts-mononoki' for glob 'fonts-*'
Note, selecting 'fonts-orya-extra' for glob 'fonts-*'
Note, selecting 'fonts-ubuntu-title' for glob 'fonts-*'
Note, selecting 'fonts-lao' for glob 'fonts-*'
Note, selecting 'fonts-adf-mekanus' for glob 'fonts-*'
Note, selecting 'fonts-lyx' for glob 'fonts-*'
Note, selecting 'fonts-gfs-theokritos' for glob 'fonts-*'
Note, selecting 'fonts-wqy-zenhei' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-taogu' for glob 'fonts-*'
Note, selecting 'fonts-noto-unhinted' for glob 'fonts-*'
Note, selecting 'fonts-hosny-thabit' for glob 'fonts-*'
Note, selecting 'fonts-sil-gentiumplus' for glob 'fonts-*'
Note, selecting 'fonts-adf-irianis' for glob 'fonts-*'
Note, selecting 'fonts-cwtex-docs' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typist' for glob 'fonts-*'
Note, selecting 'fonts-khmeros' for glob 'fonts-*'
Note, selecting 'fonts-smc' for glob 'fonts-*'
Note, selecting 'fonts-oradano-mincho-gsrr' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan' for glob 'fonts-*'
Note, selecting 'fonts-unikurdweb' for glob 'fonts-*'
Note, selecting 'fonts-monoid-loose' for glob 'fonts-*'
Note, selecting 'fonts-dejavu' for glob 'fonts-*'
Note, selecting 'fonts-cegui' for glob 'fonts-*'
Note, selecting 'fonts-gfs-neohellenic' for glob 'fonts-*'
Note, selecting 'fonts-klee' for glob 'fonts-*'
Note, selecting 'fonts-smc-karumbi' for glob 'fonts-*'
Note, selecting 'fonts-atarismall' for glob 'fonts-*'
Note, selecting 'fonts-gfs-baskerville' for glob 'fonts-*'
Note, selecting 'fonts-knda' for glob 'fonts-*'
Note, selecting 'fonts-tiresias' for glob 'fonts-*'
Note, selecting 'fonts-humor-sans' for glob 'fonts-*'
Note, selecting 'fonts-elstob' for glob 'fonts-*'
Note, selecting 'fonts-noto-cjk-extra' for glob 'fonts-*'
Note, selecting 'fonts-gubbi' for glob 'fonts-*'
Note, selecting 'fonts-dzongkha' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-garuda' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-purisa' for glob 'fonts-*'
Note, selecting 'fonts-fork-awesome' for glob 'fonts-*'
Note, selecting 'fonts-lemonada' for glob 'fonts-*'
Note, selecting 'fonts-averia-sans-gwf' for glob 'fonts-*'
Note, selecting 'fonts-sil-andikanewbasic' for glob 'fonts-*'
Note, selecting 'fonts-b612' for glob 'fonts-*'
Note, selecting 'fonts-linex' for glob 'fonts-*'
Note, selecting 'fonts-millimetre' for glob 'fonts-*'
Note, selecting 'fonts-rampart' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-norasi-otf' for glob 'fonts-*'
Note, selecting 'fonts-ocr-a' for glob 'fonts-*'
Note, selecting 'fonts-ocr-b' for glob 'fonts-*'
Note, selecting 'fonts-ancient-scripts' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typo-otf' for glob 'fonts-*'
Note, selecting 'fonts-staypuft' for glob 'fonts-*'
Note, selecting 'fonts-migmix' for glob 'fonts-*'
Note, selecting 'fonts-vollkorn' for glob 'fonts-*'
Note, selecting 'fonts-croscore' for glob 'fonts-*'
Note, selecting 'fonts-osifont' for glob 'fonts-*'
Note, selecting 'fonts-aenigma' for glob 'fonts-*'
Note, selecting 'fonts-ricty-diminished' for glob 'fonts-*'
Note, selecting 'fonts-lohit-gujr' for glob 'fonts-*'
Note, selecting 'fonts-lohit-guru' for glob 'fonts-*'
Note, selecting 'fonts-rocknroll' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-norasi-ttf' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typo-ttf' for glob 'fonts-*'
Note, selecting 'fonts-sil-lateef' for glob 'fonts-*'
Note, selecting 'fonts-roboto-fontface' for glob 'fonts-*'
Note, selecting 'fonts-lindenhill' for glob 'fonts-*'
Note, selecting 'fonts-monoid-tight' for glob 'fonts-*'
Note, selecting 'fonts-material-design-icons-iconfont' for glob 'fonts-*'
Note, selecting 'fonts-lobster' for glob 'fonts-*'
Note, selecting 'fonts-jetbrains-mono' for glob 'fonts-*'
Note, selecting 'fonts-beteckna' for glob 'fonts-*'
Note, selecting 'fonts-lato' for glob 'fonts-*'
Note, selecting 'fonts-yozvox-yozfont' for glob 'fonts-*'
Note, selecting 'fonts-averia-serif-gwf' for glob 'fonts-*'
Note, selecting 'fonts-opendyslexic' for glob 'fonts-*'
Note, selecting 'fonts-fantasque-sans' for glob 'fonts-*'
Note, selecting 'fonts-le-murmure' for glob 'fonts-*'
Note, selecting 'fonts-lohit-mlym' for glob 'fonts-*'
Note, selecting 'fonts-ldco' for glob 'fonts-*'
Note, selecting 'fonts-sil-annapurnasil' for glob 'fonts-*'
Note, selecting 'fonts-reggae' for glob 'fonts-*'
Note, selecting 'fonts-takao-mincho' for glob 'fonts-*'
Note, selecting 'fonts-meera-taml' for glob 'fonts-*'
Note, selecting 'fonts-sil-taiheritagepro' for glob 'fonts-*'
Note, selecting 'fonts-sil-doulos' for glob 'fonts-*'
Note, selecting 'fonts-eeyek' for glob 'fonts-*'
Note, selecting 'fonts-gnutypewriter' for glob 'fonts-*'
Note, selecting 'fonts-yanone-kaffeesatz' for glob 'fonts-*'
Note, selecting 'fonts-sil-ezra' for glob 'fonts-*'
Note, selecting 'fonts-nanum-extra' for glob 'fonts-*'
Note, selecting 'fonts-arphic-gkai00mp' for glob 'fonts-*'
Note, selecting 'fonts-kouzan-mouhitsu' for glob 'fonts-*'
Note, selecting 'fonts-povray' for glob 'fonts-*'
Note, selecting 'fonts-lohit-devanagari' for glob 'fonts-*'
Note, selecting 'fonts-alee' for glob 'fonts-*'
Note, selecting 'fonts-takao-gothic' for glob 'fonts-*'
Note, selecting 'fonts-wine' for glob 'fonts-*'
Note, selecting 'fonts-terminus-otb' for glob 'fonts-*'
Note, selecting 'fonts-smc-manjari' for glob 'fonts-*'
Note, selecting 'fonts-oflb-asana-math' for glob 'fonts-*'
Note, selecting 'fonts-sil-doulos-compact' for glob 'fonts-*'
Note, selecting 'fonts-telu-extra' for glob 'fonts-*'
Note, selecting 'fonts-lohit-deva-nepali' for glob 'fonts-*'
Note, selecting 'fonts-motoya-l-cedar' for glob 'fonts-*'
Note, selecting 'fonts-summersby' for glob 'fonts-*'
Note, selecting 'fonts-ddc-uchen' for glob 'fonts-*'
Note, selecting 'fonts-misaki' for glob 'fonts-*'
Note, selecting 'fonts-motoya-l-maruberi' for glob 'fonts-*'
Note, selecting 'fonts-ebgaramond' for glob 'fonts-*'
Note, selecting 'fonts-mmcedar' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typist-otf' for glob 'fonts-*'
Note, selecting 'fonts-samyak-gujr' for glob 'fonts-*'
Note, selecting 'fonts-sil-gentium-plus' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-zonghe' for glob 'fonts-*'
Note, selecting 'fonts-yozvox-yozfont-antique' for glob 'fonts-*'
Note, selecting 'fonts-materialdesignicons-webfont' for glob 'fonts-*'
Note, selecting 'fonts-sil-galatia' for glob 'fonts-*'
Note, selecting 'fonts-aoyagi-soseki' for glob 'fonts-*'
Note, selecting 'fonts-hosny-amiri' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typo' for glob 'fonts-*'
Note, selecting 'fonts-opendin' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-garuda-otf' for glob 'fonts-*'
Note, selecting 'fonts-adf-oldania' for glob 'fonts-*'
Note, selecting 'fonts-noto-hinted' for glob 'fonts-*'
Note, selecting 'fonts-comic-neue' for glob 'fonts-*'
Note, selecting 'fonts-aksharyogini2' for glob 'fonts-*'
Note, selecting 'fonts-noto-mono' for glob 'fonts-*'
Note, selecting 'fonts-roadgeek' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typist-ttf' for glob 'fonts-*'
Note, selecting 'fonts-adf-verana' for glob 'fonts-*'
Note, selecting 'fonts-ferrite-core' for glob 'fonts-*'
Note, selecting 'fonts-cabin' for glob 'fonts-*'
Note, selecting 'fonts-adf-gillius' for glob 'fonts-*'
Note, selecting 'fonts-dclfonts' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-garuda-ttf' for glob 'fonts-*'
Note, selecting 'fonts-dotgothic16' for glob 'fonts-*'
Note, selecting 'fonts-sil-annapurna' for glob 'fonts-*'
Note, selecting 'fonts-dustin' for glob 'fonts-*'
Note, selecting 'fonts-havana' for glob 'fonts-*'
Note, selecting 'fonts-glyphicons-halflings' for glob 'fonts-*'
Note, selecting 'fonts-sahadeva' for glob 'fonts-*'
Note, selecting 'fonts-samyak-mlym' for glob 'fonts-*'
Note, selecting 'fonts-stick' for glob 'fonts-*'
Note, selecting 'fonts-ebgaramond-extra' for glob 'fonts-*'
Note, selecting 'fonts-sambhota-tsugring' for glob 'fonts-*'
Note, selecting 'fonts-opensymbol' for glob 'fonts-*'
Note, selecting 'fonts-sil-charis' for glob 'fonts-*'
Note, selecting 'fonts-samyak' for glob 'fonts-*'
Note, selecting 'fonts-lexi-saebom' for glob 'fonts-*'
Note, selecting 'fonts-elusive-icons' for glob 'fonts-*'
Note, selecting 'fonts-agave' for glob 'fonts-*'
Note, selecting 'fonts-sil-gentiumpluscompact' for glob 'fonts-*'
Note, selecting 'fonts-sil-akatab' for glob 'fonts-*'
Note, selecting 'fonts-jsmath' for glob 'fonts-*'
Note, selecting 'fonts-arphic-uming' for glob 'fonts-*'
Note, selecting 'fonts-recommended' for glob 'fonts-*'
Note, selecting 'fonts-ipamj-mincho' for glob 'fonts-*'
Note, selecting 'fonts-entypo' for glob 'fonts-*'
Note, selecting 'fonts-clear-sans' for glob 'fonts-*'
Note, selecting 'fonts-inconsolata' for glob 'fonts-*'
Note, selecting 'fonts-sil-alkalami' for glob 'fonts-*'
Note, selecting 'fonts-symbola' for glob 'fonts-*'
Note, selecting 'fonts-bajaderka' for glob 'fonts-*'
Note, selecting 'fonts-yusei-magic' for glob 'fonts-*'
Note, selecting 'fonts-yozvox-yozfont-standard-kana' for glob 'fonts-*'
Note, selecting 'fonts-hanazono' for glob 'fonts-*'
Note, selecting 'fonts-beng' for glob 'fonts-*'
Note, selecting 'fonts-gujr' for glob 'fonts-*'
Note, selecting 'fonts-guru' for glob 'fonts-*'
Note, selecting 'fonts-gfs-bodoni-classic' for glob 'fonts-*'
Note, selecting 'fonts-cardo' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-salaowu' for glob 'fonts-*'
Note, selecting 'fonts-smc-chilanka' for glob 'fonts-*'
Note, selecting 'fonts-breip' for glob 'fonts-*'
Note, selecting 'fonts-babelstone-han' for glob 'fonts-*'
Note, selecting 'fonts-oflb-euterpe' for glob 'fonts-*'
Note, selecting 'fonts-babelstone-modern' for glob 'fonts-*'
Note, selecting 'fonts-sil-padauk' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-guifan' for glob 'fonts-*'
Note, selecting 'fonts-naver-d2coding' for glob 'fonts-*'
Note, selecting 'fonts-cns11643-pixmaps' for glob 'fonts-*'
Note, selecting 'fonts-lohit-taml' for glob 'fonts-*'
Note, selecting 'fonts-roboto-hinted' for glob 'fonts-*'
Note, selecting 'fonts-mplus' for glob 'fonts-*'
Note, selecting 'fonts-urw-base35' for glob 'fonts-*'
Note, selecting 'fonts-gamaliel' for glob 'fonts-*'
Note, selecting 'fonts-manchufont' for glob 'fonts-*'
Note, selecting 'fonts-beng-extra' for glob 'fonts-*'
Note, selecting 'fonts-engadget' for glob 'fonts-*'
Note, selecting 'fonts-mlym' for glob 'fonts-*'
Note, selecting 'fonts-johnsmith-induni' for glob 'fonts-*'
Note, selecting 'fonts-lohit-telu' for glob 'fonts-*'
Note, selecting 'fonts-farsiweb' for glob 'fonts-*'
Note, selecting 'fonts-powerline-extra' for glob 'fonts-*'
Note, selecting 'fonts-konatu' for glob 'fonts-*'
Note, selecting 'fonts-league-mono' for glob 'fonts-*'
Note, selecting 'fonts-mikachan' for glob 'fonts-*'
Note, selecting 'fonts-compagnon' for glob 'fonts-*'
Note, selecting 'fonts-senamirmir-washra' for glob 'fonts-*'
Note, selecting 'fonts-georgewilliams' for glob 'fonts-*'
Note, selecting 'fonts-mona' for glob 'fonts-*'
Note, selecting 'fonts-klaudia-berenika' for glob 'fonts-*'
Note, selecting 'fonts-sil-mondulkiri' for glob 'fonts-*'
Note, selecting 'fonts-comfortaa' for glob 'fonts-*'
Note, selecting 'fonts-hack' for glob 'fonts-*'
Note, selecting 'fonts-gfs-porson' for glob 'fonts-*'
Note, selecting 'fonts-gfs-gazis' for glob 'fonts-*'
Note, selecting 'fonts-joscelyn' for glob 'fonts-*'
Note, selecting 'fonts-umeplus' for glob 'fonts-*'
Note, selecting 'fonts-noto-core' for glob 'fonts-*'
Note, selecting 'fonts-lobstertwo' for glob 'fonts-*'
Note, selecting 'fonts-levien-typoscript' for glob 'fonts-*'
Note, selecting 'fonts-kanjistrokeorders' for glob 'fonts-*'
Note, selecting 'fonts-bwht' for glob 'fonts-*'
Note, selecting 'fonts-essays1743' for glob 'fonts-*'
Note, selecting 'fonts-seto' for glob 'fonts-*'
Note, selecting 'fonts-arphic-uming-mbe' for glob 'fonts-*'
Note, selecting 'fonts-woowa-hanna' for glob 'fonts-*'
Note, selecting 'fonts-quicksand' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-umpush-otf' for glob 'fonts-*'
Note, selecting 'fonts-circos-symbols' for glob 'fonts-*'
Note, selecting 'fonts-3270' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-laksaman' for glob 'fonts-*'
Note, selecting 'fonts-gujr-extra' for glob 'fonts-*'
Note, selecting 'fonts-arphic-bsmi00lp' for glob 'fonts-*'
Note, selecting 'fonts-sawarabi-mincho' for glob 'fonts-*'
Note, selecting 'fonts-dejima-mincho' for glob 'fonts-*'
Note, selecting 'fonts-gemunu-libre' for glob 'fonts-*'
Note, selecting 'fonts-spleen' for glob 'fonts-*'
Note, selecting 'fonts-droid' for glob 'fonts-*'
Note, selecting 'fonts-lohit-deva' for glob 'fonts-*'
Note, selecting 'fonts-rit-sundar' for glob 'fonts-*'
Note, selecting 'fonts-gargi' for glob 'fonts-*'
Note, selecting 'fonts-tuffy' for glob 'fonts-*'
Note, selecting 'fonts-sipa-arundina' for glob 'fonts-*'
Note, selecting 'fonts-go' for glob 'fonts-*'
Note, selecting 'fonts-pc' for glob 'fonts-*'
Note, selecting 'fonts-wqy-microhei' for glob 'fonts-*'
Note, selecting 'fonts-cns11643-kai' for glob 'fonts-*'
Note, selecting 'fonts-evertype-conakry' for glob 'fonts-*'
Note, selecting 'fonts-adf-ikarius' for glob 'fonts-*'
Note, selecting 'fonts-liberation' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-umpush-ttf' for glob 'fonts-*'
Note, selecting 'fonts-texgyre' for glob 'fonts-*'
Note, selecting 'fonts-samyak-taml' for glob 'fonts-*'
Note, selecting 'fonts-sawarabi-gothic' for glob 'fonts-*'
Note, selecting 'fonts-monapo' for glob 'fonts-*'
Note, selecting 'fonts-paktype' for glob 'fonts-*'
Note, selecting 'fonts-league-spartan' for glob 'fonts-*'
Note, selecting 'fonts-kaushanscript' for glob 'fonts-*'
Note, selecting 'fonts-ecolier-lignes-court' for glob 'fonts-*'
Note, selecting 'fonts-sil-dai-banna' for glob 'fonts-*'
Note, selecting 'fonts-monofur' for glob 'fonts-*'
Note, selecting 'fonts-pc-extra' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-mono-otf' for glob 'fonts-*'
Note, selecting 'fonts-kacst' for glob 'fonts-*'
Note, selecting 'fonts-noto-ui-extra' for glob 'fonts-*'
Note, selecting 'fonts-karmilla' for glob 'fonts-*'
Note, selecting 'fonts-yrsa-rasa' for glob 'fonts-*'
Note, selecting 'fonts-stix' for glob 'fonts-*'
Note, selecting 'fonts-monoid-halfloose' for glob 'fonts-*'
Note, selecting 'fonts-adf-accanthis' for glob 'fonts-*'
Note, selecting 'fonts-unfonts-core' for glob 'fonts-*'
Note, selecting 'fonts-smc-keraleeyam' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-mono-ttf' for glob 'fonts-*'
Note, selecting 'fonts-mathjax' for glob 'fonts-*'
Note, selecting 'fonts-crosextra-caladea' for glob 'fonts-*'
Note, selecting 'fonts-monlam' for glob 'fonts-*'
Note, selecting 'fonts-lohit-orya' for glob 'fonts-*'
Note, selecting 'fonts-adf-switzera' for glob 'fonts-*'
Note, selecting 'fonts-arphic-gbsn00lp' for glob 'fonts-*'
Note, selecting 'fonts-nanum-coding' for glob 'fonts-*'
Note, selecting 'fonts-japanese-mincho' for glob 'fonts-*'
Note, selecting 'fonts-monoid' for glob 'fonts-*'
Note, selecting 'fonts-tomsontalks' for glob 'fonts-*'
Note, selecting 'fonts-yozvox-yozfont-cute' for glob 'fonts-*'
Note, selecting 'fonts-noto-color-emoji' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typewriter' for glob 'fonts-*'
Note, selecting 'fonts-triod-postnaja' for glob 'fonts-*'
Note, selecting 'fonts-taml-tamu' for glob 'fonts-*'
Note, selecting 'fonts-kalapi' for glob 'fonts-*'
Note, selecting 'fonts-noto' for glob 'fonts-*'
Note, selecting 'fonts-campania' for glob 'fonts-*'
Note, selecting 'fonts-samyak-deva' for glob 'fonts-*'
Note, selecting 'fonts-horai-umefont' for glob 'fonts-*'
Note, selecting 'fonts-japanese-gothic' for glob 'fonts-*'
Note, selecting 'fonts-aoyagi-kouzan-t' for glob 'fonts-*'
Note, selecting 'fonts-junction' for glob 'fonts-*'
Note, selecting 'fonts-noto-extra' for glob 'fonts-*'
Note, selecting 'fonts-meera-inimai' for glob 'fonts-*'
Note, selecting 'fonts-font-awesome' for glob 'fonts-*'
Note, selecting 'fonts-karla' for glob 'fonts-*'
Note, selecting 'fonts-vlgothic' for glob 'fonts-*'
Note, selecting 'fonts-smc-rachana' for glob 'fonts-*'
Note, selecting 'fonts-gotico-antiqua' for glob 'fonts-*'
Note, selecting 'fonts-navilu' for glob 'fonts-*'
Note, selecting 'fonts-sil-andika-compact' for glob 'fonts-*'
Note, selecting 'fonts-ukij-uyghur' for glob 'fonts-*'
Note, selecting 'fonts-baekmuk' for glob 'fonts-*'
Note, selecting 'fonts-taml' for glob 'fonts-*'
Note, selecting 'fonts-cwtex-ming' for glob 'fonts-*'
Note, selecting 'fonts-katex' for glob 'fonts-*'
Note, selecting 'fonts-noto-cjk' for glob 'fonts-*'
Note, selecting 'fonts-roboto' for glob 'fonts-*'
Note, selecting 'fonts-smc-uroob' for glob 'fonts-*'
Note, selecting 'fonts-cherrybomb' for glob 'fonts-*'
Note, selecting 'fonts-adf-romande' for glob 'fonts-*'
Note, selecting 'fonts-blankenburg' for glob 'fonts-*'
Note, selecting 'fonts-lmodern' for glob 'fonts-*'
Note, selecting 'fonts-prociono' for glob 'fonts-*'
Note, selecting 'fonts-telu' for glob 'fonts-*'
Note, selecting 'fonts-fanwood' for glob 'fonts-*'
Note, selecting 'fonts-liberation2' for glob 'fonts-*'
Note, selecting 'fonts-nanum-eco' for glob 'fonts-*'
Note, selecting 'fonts-sil-nuosusil' for glob 'fonts-*'
Note, selecting 'fonts-monoid-halftight' for glob 'fonts-*'
Note, selecting 'fonts-adf-solothurn' for glob 'fonts-*'
Note, selecting 'fonts-goudybookletter' for glob 'fonts-*'
Note, selecting 'fonts-noto-ui-core' for glob 'fonts-*'
Note, selecting 'fonts-smc-raghumalayalamsans' for glob 'fonts-*'
Note, selecting 'fonts-roboto-slab' for glob 'fonts-*'
Note, selecting 'fonts-gfs-artemisia' for glob 'fonts-*'
Note, selecting 'fonts-leckerli-one' for glob 'fonts-*'
Note, selecting 'fonts-sil-scheherazade' for glob 'fonts-*'
Note, selecting 'fonts-nafees' for glob 'fonts-*'
Note, selecting 'fonts-uralic' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-kinnari-otf' for glob 'fonts-*'
Note, selecting 'fonts-nakula' for glob 'fonts-*'
Note, selecting 'fonts-lohit-tamil-classical' for glob 'fonts-*'
Note, selecting 'fonts-ecolier-court' for glob 'fonts-*'
Note, selecting 'fonts-gfs-didot' for glob 'fonts-*'
Note, selecting 'fonts-freefont-otf' for glob 'fonts-*'
Note, selecting 'fonts-sil-gentium-basic' for glob 'fonts-*'
Note, selecting 'fonts-arabeyes' for glob 'fonts-*'
Note, selecting 'fonts-cwtex-heib' for glob 'fonts-*'
Note, selecting 'fonts-samyak-orya' for glob 'fonts-*'
Note, selecting 'fonts-nanum' for glob 'fonts-*'
Note, selecting 'fonts-dancingscript' for glob 'fonts-*'
Note, selecting 'fonts-lohit-beng-assamese' for glob 'fonts-*'
Note, selecting 'fonts-yozvox-yozfont-edu' for glob 'fonts-*'
Note, selecting 'fonts-kristi' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-gsm' for glob 'fonts-*'
Note, selecting 'fonts-lexi-gulim' for glob 'fonts-*'
Note, selecting 'fonts-taml-tscu' for glob 'fonts-*'
Note, selecting 'fonts-arphic-ukai' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-kinnari-ttf' for glob 'fonts-*'
Note, selecting 'fonts-freefont' for glob 'fonts-*'
Note, selecting 'fonts-linuxlibertine' for glob 'fonts-*'
Note, selecting 'fonts-freefont-ttf' for glob 'fonts-*'
Note, selecting 'fonts-gfs-olga' for glob 'fonts-*'
Note, selecting 'fonts-smc-anjalioldlipi' for glob 'fonts-*'
Note, selecting 'fonts-dejavu-core' for glob 'fonts-*'
Note, selecting 'fonts-lklug-sinhala' for glob 'fonts-*'
Note, selecting 'fonts-pagul' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-loma-otf' for glob 'fonts-*'
Note, selecting 'fonts-cwtex-fs' for glob 'fonts-*'
Note, selecting 'fonts-deva' for glob 'fonts-*'
Note, selecting 'fonts-allerta' for glob 'fonts-*'
Note, selecting 'fonts-oldstandard' for glob 'fonts-*'
Note, selecting 'fonts-mathjax-extras' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-mas' for glob 'fonts-*'
Note, selecting 'fonts-junicode' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-mgs' for glob 'fonts-*'
Note, selecting 'fonts-sil-zaghawa-beria' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-loma' for glob 'fonts-*'
Note, selecting 'fonts-sil-shimenkan-sapushan' for glob 'fonts-*'
Note, selecting 'fonts-powerline' for glob 'fonts-*'
Note, selecting 'fonts-woowa-bm' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-norasi' for glob 'fonts-*'
Note, selecting 'fonts-arapey' for glob 'fonts-*'
Note, selecting 'fonts-sil-mingzat' for glob 'fonts-*'
Note, selecting 'fonts-deva-extra' for glob 'fonts-*'
Note, selecting 'fonts-arkpandora' for glob 'fonts-*'
Note, selecting 'fonts-dejavu-extra' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-laksaman-otf' for glob 'fonts-*'
Note, selecting 'fonts-sil-abyssinica' for glob 'fonts-*'
Note, selecting 'fonts-solide-mirage' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-loma-ttf' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-umpush' for glob 'fonts-*'
Note, selecting 'fonts-hermit' for glob 'fonts-*'
Note, selecting 'fonts-bebas-neue' for glob 'fonts-*'
Note, selecting 'fonts-unfonts-extra' for glob 'fonts-*'
Note, selecting 'fonts-bpg-georgian' for glob 'fonts-*'
Note, selecting 'fonts-arundina' for glob 'fonts-*'
Note, selecting 'fonts-isabella' for glob 'fonts-*'
Note, selecting 'fonts-sil-mondulkiri-extra' for glob 'fonts-*'
Note, selecting 'fonts-levien-museum' for glob 'fonts-*'
Note, selecting 'fonts-glasstty' for glob 'fonts-*'
Note, selecting 'fonts-sil-awami-nastaliq' for glob 'fonts-*'
Note, selecting 'fonts-freefarsi' for glob 'fonts-*'
Note, selecting 'fonts-sjfonts' for glob 'fonts-*'
Note, selecting 'fonts-gfs-didot-classic' for glob 'fonts-*'
Note, selecting 'fonts-guru-extra' for glob 'fonts-*'
Note, selecting 'fonts-firacode' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-laksaman-ttf' for glob 'fonts-*'
Note, selecting 'fonts-ipafont-mincho' for glob 'fonts-*'
Note, selecting 'fonts-radisnoir' for glob 'fonts-*'
Note, selecting 'fonts-rufscript' for glob 'fonts-*'
Note, selecting 'fonts-smc-gayathri' for glob 'fonts-*'
Note, selecting 'fonts-denemo' for glob 'fonts-*'
Note, selecting 'fonts-droid-fallback' for glob 'fonts-*'
Note, selecting 'fonts-sil-charis-compact' for glob 'fonts-*'
Note, selecting 'fonts-crosextra-carlito' for glob 'fonts-*'
Note, selecting 'fonts-unifont' for glob 'fonts-*'
Note, selecting 'fonts-dseg' for glob 'fonts-*'
Note, selecting 'fonts-ipafont-gothic' for glob 'fonts-*'
Note, selecting 'fonts-ipafont' for glob 'fonts-*'
Note, selecting 'fonts-orya' for glob 'fonts-*'
Note, selecting 'fonts-sil-andika-new-basic' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-waree' for glob 'fonts-*'
Note, selecting 'fonts-f500' for glob 'fonts-*'
Note, selecting 'fonts-century-catalogue' for glob 'fonts-*'
Note, selecting 'fonts-lohit-knda' for glob 'fonts-*'
Note, selecting 'fonts-lohit-taml-classical' for glob 'fonts-*'
Note, selecting 'fonts-sil-sophia-nubian' for glob 'fonts-*'
Note, selecting 'fonts-sil-tagmukay' for glob 'fonts-*'
Note, selecting 'fonts-arphic-bkai00mp' for glob 'fonts-*'
Note, selecting 'fonts-ubuntu' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typewriter-otf' for glob 'fonts-*'
Note, selecting 'fonts-cwtex-kai' for glob 'fonts-*'
Note, selecting 'fonts-cns11643-sung' for glob 'fonts-*'
Note, selecting 'fonts-roboto-unhinted' for glob 'fonts-*'
Note, selecting 'fonts-paratype' for glob 'fonts-*'
Note, selecting 'fonts-adf-universalis' for glob 'fonts-*'
Note, selecting 'fonts-lg-aboriginal' for glob 'fonts-*'
Note, selecting 'fonts-hack-otf' for glob 'fonts-*'
Note, selecting 'fonts-mph-2b-damase' for glob 'fonts-*'
Note, selecting 'fonts-indic' for glob 'fonts-*'
Note, selecting 'fonts-adf-baskervald' for glob 'fonts-*'
Note, selecting 'fonts-takao' for glob 'fonts-*'
Note, selecting 'fonts-cabinsketch' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-typewriter-ttf' for glob 'fonts-*'
Note, selecting 'fonts-ipaexfont-mincho' for glob 'fonts-*'
Note, selecting 'fonts-adf-libris' for glob 'fonts-*'
Note, selecting 'fonts-tlwg-purisa-otf' for glob 'fonts-*'
Note, selecting 'fonts-sarai' for glob 'fonts-*'
Note, selecting 'fonts-averia-gwf' for glob 'fonts-*'
Note, selecting 'fonts-hack-ttf' for glob 'fonts-*'
Note, selecting 'fonts-cascadia-code' for glob 'fonts-*'
Note, selecting 'fonts-lohit-deva-marathi' for glob 'fonts-*'
Note, selecting 'fonts-sambhota-yigchung' for glob 'fonts-*'
Note, selecting 'fonts-open-sans' for glob 'fonts-*'
The following additional packages will be installed:
fontconfig fontconfig-config libbrotli1 libexpat1 libfontconfig1 libfontenc1
libfreetype6 libpng16-16 sensible-utils ucf x11-common xfonts-encodings
xfonts-utils
Suggested packages:
libgraphite3 pango-graphite fontforge fonts-lohit-devanagari libjs-mathjax
libgraphite2-3 xserver | xfs xfonts-terminus-oblique
The following NEW packages will be installed:
fontconfig fontconfig-config fonts-3270 fonts-adf-accanthis
fonts-adf-baskervald fonts-adf-berenis fonts-adf-gillius fonts-adf-ikarius
fonts-adf-irianis fonts-adf-libris fonts-adf-mekanus fonts-adf-oldania
fonts-adf-romande fonts-adf-solothurn fonts-adf-switzera fonts-adf-tribun
fonts-adf-universalis fonts-adf-verana fonts-aenigma fonts-agave
fonts-aksharyogini2 fonts-alee fonts-allerta fonts-ancient-scripts
fonts-anonymous-pro fonts-aoyagi-kouzan-t fonts-aoyagi-soseki fonts-apropal
fonts-arabeyes fonts-arapey fonts-arkpandora fonts-arphic-bkai00mp
fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp
fonts-arphic-ukai fonts-arphic-uming fonts-arundina fonts-atarismall
fonts-averia-gwf fonts-averia-sans-gwf fonts-averia-serif-gwf fonts-b612
fonts-babelstone-han fonts-babelstone-modern fonts-baekmuk fonts-bajaderka
fonts-bebas-neue fonts-beng fonts-beng-extra fonts-beteckna
fonts-blankenburg fonts-bpg-georgian fonts-breip fonts-bwht fonts-cabin
fonts-cabinsketch fonts-campania fonts-cantarell fonts-cardo
fonts-cascadia-code fonts-cegui fonts-century-catalogue fonts-cherrybomb
fonts-circos-symbols fonts-clear-sans fonts-cmu fonts-cns11643-kai
fonts-cns11643-pixmaps fonts-cns11643-sung fonts-comfortaa fonts-comic-neue
fonts-compagnon fonts-courier-prime fonts-croscore fonts-crosextra-caladea
fonts-crosextra-carlito fonts-cwtex-docs fonts-cwtex-fs fonts-cwtex-heib
fonts-cwtex-kai fonts-cwtex-ming fonts-cwtex-yen fonts-dancingscript
fonts-dclfonts fonts-ddc-uchen fonts-dejavu fonts-dejavu-core
fonts-dejavu-extra fonts-dejima-mincho fonts-denemo fonts-deva
fonts-deva-extra fonts-dkg-handwriting fonts-dosis fonts-dotgothic16
fonts-droid-fallback fonts-dseg fonts-dustin fonts-dzongkha fonts-ebgaramond
fonts-ebgaramond-extra fonts-ecolier-court fonts-ecolier-lignes-court
fonts-eeyek fonts-elstob fonts-elusive-icons fonts-engadget fonts-entypo
fonts-essays1743 fonts-eurofurence fonts-evertype-conakry fonts-f500
fonts-fantasque-sans fonts-fanwood fonts-farsiweb fonts-femkeklaver
fonts-ferrite-core fonts-firacode fonts-font-awesome fonts-fork-awesome
fonts-freefarsi fonts-freefont-otf fonts-freefont-ttf fonts-gamaliel
fonts-gargi fonts-gemunu-libre fonts-georgewilliams fonts-gfs-artemisia
fonts-gfs-baskerville fonts-gfs-bodoni-classic fonts-gfs-complutum
fonts-gfs-didot fonts-gfs-didot-classic fonts-gfs-gazis
fonts-gfs-neohellenic fonts-gfs-olga fonts-gfs-porson fonts-gfs-solomos
fonts-gfs-theokritos fonts-glasstty fonts-glyphicons-halflings
fonts-gnutypewriter fonts-go fonts-gotico-antiqua fonts-goudybookletter
fonts-gubbi fonts-gujr fonts-gujr-extra fonts-guru fonts-guru-extra
fonts-hack fonts-hack-otf fonts-hack-ttf fonts-hack-web fonts-hanazono
fonts-havana fonts-hermit fonts-horai-umefont fonts-hosny-amiri
fonts-hosny-thabit fonts-humor-sans fonts-inconsolata fonts-indic
fonts-ipaexfont fonts-ipaexfont-gothic fonts-ipaexfont-mincho fonts-ipafont
fonts-ipafont-gothic fonts-ipafont-mincho fonts-ipamj-mincho fonts-isabella
fonts-jetbrains-mono fonts-johnsmith-induni fonts-joscelyn fonts-jsmath
fonts-junction fonts-junicode fonts-jura fonts-kacst fonts-kacst-one
fonts-kalapi fonts-kanjistrokeorders fonts-karla fonts-karmilla fonts-katex
fonts-kaushanscript fonts-khmeros fonts-kiloji fonts-klaudia-berenika
fonts-klee fonts-knda fonts-komatuna fonts-konatu fonts-kouzan-mouhitsu
fonts-kristi fonts-lao fonts-lato fonts-ldco fonts-le-murmure
fonts-league-mono fonts-league-spartan fonts-leckerli-one fonts-lemonada
fonts-levien-museum fonts-levien-typoscript fonts-lexi-gulim
fonts-lexi-saebom fonts-lg-aboriginal fonts-liberation fonts-liberation2
fonts-lindenhill fonts-linex fonts-linuxlibertine fonts-lklug-sinhala
fonts-lmodern fonts-lobster fonts-lobstertwo fonts-lohit-beng-assamese
fonts-lohit-beng-bengali fonts-lohit-deva fonts-lohit-deva-marathi
fonts-lohit-deva-nepali fonts-lohit-gujr fonts-lohit-guru fonts-lohit-knda
fonts-lohit-mlym fonts-lohit-orya fonts-lohit-taml
fonts-lohit-taml-classical fonts-lohit-telu fonts-lyx fonts-manchufont
fonts-material-design-icons-iconfont fonts-materialdesignicons-webfont
fonts-mathjax fonts-mathjax-extras fonts-meera-inimai fonts-meera-taml
fonts-migmix fonts-millimetre fonts-misaki fonts-mlym fonts-mmcedar
fonts-mona fonts-monapo fonts-monlam fonts-monofur fonts-monoid
fonts-monoid-halfloose fonts-monoid-halftight fonts-monoid-loose
fonts-monoid-tight fonts-mononoki fonts-motoya-l-cedar
fonts-motoya-l-maruberi fonts-mph-2b-damase fonts-mplus fonts-nafees
fonts-nakula fonts-nanum fonts-nanum-coding fonts-nanum-eco
fonts-nanum-extra fonts-naver-d2coding fonts-navilu fonts-noto
fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji fonts-noto-core
fonts-noto-extra fonts-noto-hinted fonts-noto-mono fonts-noto-ui-core
fonts-noto-ui-extra fonts-noto-unhinted fonts-ocr-a fonts-ocr-b
fonts-oflb-asana-math fonts-oflb-euterpe fonts-okolaks fonts-oldstandard
fonts-open-sans fonts-opendin fonts-opendyslexic fonts-opensymbol
fonts-oradano-mincho-gsrr fonts-orya fonts-orya-extra fonts-osifont
fonts-oxygen fonts-pagul fonts-paktype fonts-paratype fonts-pc
fonts-pc-extra fonts-play fonts-povray fonts-powerline fonts-prociono
fonts-proggy fonts-quattrocento fonts-quicksand fonts-radisnoir
fonts-rampart fonts-recommended fonts-reggae fonts-ricty-diminished
fonts-rit-sundar fonts-roadgeek fonts-roboto fonts-roboto-fontface
fonts-roboto-hinted fonts-roboto-slab fonts-roboto-unhinted fonts-rocknroll
fonts-rufscript fonts-sahadeva fonts-sambhota-tsugring
fonts-sambhota-yigchung fonts-samyak fonts-samyak-deva fonts-samyak-gujr
fonts-samyak-mlym fonts-samyak-orya fonts-samyak-taml fonts-sarai
fonts-sawarabi-gothic fonts-sawarabi-mincho fonts-senamirmir-washra
fonts-seto fonts-sil-abyssinica fonts-sil-akatab fonts-sil-alkalami
fonts-sil-andika fonts-sil-andika-compact fonts-sil-andikanewbasic
fonts-sil-annapurna fonts-sil-awami-nastaliq fonts-sil-charis
fonts-sil-charis-compact fonts-sil-dai-banna fonts-sil-doulos
fonts-sil-doulos-compact fonts-sil-ezra fonts-sil-galatia fonts-sil-gentium
fonts-sil-gentium-basic fonts-sil-gentiumplus fonts-sil-gentiumplus-compact
fonts-sil-harmattan fonts-sil-lateef fonts-sil-mingzat fonts-sil-mondulkiri
fonts-sil-mondulkiri-extra fonts-sil-nuosusil fonts-sil-padauk
fonts-sil-scheherazade fonts-sil-shimenkan fonts-sil-shimenkan-gsm
fonts-sil-shimenkan-guifan fonts-sil-shimenkan-mas fonts-sil-shimenkan-mgs
fonts-sil-shimenkan-salaowu fonts-sil-shimenkan-sapushan
fonts-sil-shimenkan-taogu fonts-sil-shimenkan-zonghe fonts-sil-sophia-nubian
fonts-sil-tagmukay fonts-sil-taiheritagepro fonts-sil-zaghawa-beria
fonts-sipa-arundina fonts-sjfonts fonts-smc fonts-smc-anjalioldlipi
fonts-smc-chilanka fonts-smc-dyuthi fonts-smc-gayathri fonts-smc-karumbi
fonts-smc-keraleeyam fonts-smc-manjari fonts-smc-meera fonts-smc-rachana
fonts-smc-raghumalayalamsans fonts-smc-suruma fonts-smc-uroob
fonts-solide-mirage fonts-spleen fonts-staypuft fonts-stick fonts-stix
fonts-summersby fonts-symbola fonts-takao fonts-takao-gothic
fonts-takao-mincho fonts-taml fonts-taml-tamu fonts-taml-tscu fonts-telu
fonts-telu-extra fonts-teluguvijayam fonts-terminus fonts-terminus-otb
fonts-texgyre fonts-thai-tlwg fonts-thai-tlwg-otf fonts-thai-tlwg-ttf
fonts-thai-tlwg-web fonts-tibetan-machine fonts-tiresias fonts-tlwg-garuda
fonts-tlwg-garuda-otf fonts-tlwg-garuda-ttf fonts-tlwg-kinnari
fonts-tlwg-kinnari-otf fonts-tlwg-kinnari-ttf fonts-tlwg-laksaman
fonts-tlwg-laksaman-otf fonts-tlwg-laksaman-ttf fonts-tlwg-loma
fonts-tlwg-loma-otf fonts-tlwg-loma-ttf fonts-tlwg-mono fonts-tlwg-mono-otf
fonts-tlwg-mono-ttf fonts-tlwg-norasi fonts-tlwg-norasi-otf
fonts-tlwg-norasi-ttf fonts-tlwg-purisa fonts-tlwg-purisa-otf
fonts-tlwg-purisa-ttf fonts-tlwg-sawasdee fonts-tlwg-sawasdee-otf
fonts-tlwg-sawasdee-ttf fonts-tlwg-typewriter fonts-tlwg-typewriter-otf
fonts-tlwg-typewriter-ttf fonts-tlwg-typist fonts-tlwg-typist-otf
fonts-tlwg-typist-ttf fonts-tlwg-typo fonts-tlwg-typo-otf
fonts-tlwg-typo-ttf fonts-tlwg-umpush fonts-tlwg-umpush-otf
fonts-tlwg-umpush-ttf fonts-tlwg-waree fonts-tlwg-waree-otf
fonts-tlwg-waree-ttf fonts-tomsontalks fonts-train fonts-triod-postnaja
fonts-tuffy fonts-ubuntu-title fonts-ukij-uyghur fonts-umeplus
fonts-umeplus-cl fonts-unfonts-core fonts-unfonts-extra fonts-unifont
fonts-unikurdweb fonts-uralic fonts-urw-base35 fonts-vlgothic fonts-vollkorn
fonts-wine fonts-woowa-bm fonts-wqy-microhei fonts-wqy-zenhei
fonts-yanone-kaffeesatz fonts-yozvox-yozfont fonts-yozvox-yozfont-antique
fonts-yozvox-yozfont-cute fonts-yozvox-yozfont-edu
fonts-yozvox-yozfont-new-kana fonts-yozvox-yozfont-standard-kana
fonts-yrsa-rasa libbrotli1 libexpat1 libfontconfig1 libfontenc1 libfreetype6
libpng16-16 sensible-utils ucf x11-common xfonts-encodings xfonts-utils
0 upgraded, 490 newly installed, 0 to remove and 18 not upgraded.
Need to get 1248 MB of archives.
After this operation, 4287 MB of additional disk space will be used.
Do you want to continue? [Y/n]
You'll need to disable imklog or rsyslogd won't start:
module(load="imklog") # provides kernel logging support
This is essential unless you give full privileges to your container.
module(load="imuxsock") # provides support for local system logging
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
*.=debug;
auth,authpriv.none;
mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;
auth,authpriv.none;
cron,daemon.none;
mail.none -/var/log/messages
*.emerg :omusrmsg:*
This is not scientific but I took an old Xeon V4 workstation and an old Quadro GPU and compared the Whisper times for the same approximately 4 minute audio, transcribing in English.
Here are the times which is slightly surpising.
I used the small model with this command:
whisper vid.mp4 --model small --output_format srt --language en
Of course to test the GPU I added the --device cuda flag and confirmed GPU was being used as utilization on GPU was 100%
real 3m49.033s
real 3m55.140s
I observed it took some time to load the model into GPU memory, for shorter audio this increased the overall processing time slightly. I believe if I have time to test a longer audio that the result will be different and GPU will show a better result.
The default version is CPU only, which usually is not what we want if we have a GPU:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Now cuda enabled pytorch apps like whisper etc... can take advantage of CUDA finally!
False means it is not working, or at least your cuda/nvidia driver setup is installed and True means good.
python3 -c "import torch; print(torch.cuda.is_available())"
True
There are problably a million blog posts telling you how to do it, but none of those guides worked for me. Things can often be different sites and other "unknowns", so there is no guarantee this works for you or for every site.
First we'll use curl to search for all the relevant files for the domain and based on the snapshot/timestamp in bold below.
curl -s "https://web.archive.org/cdx/search/cdx?url=yourdomain.com/*&to=20190416204741&output=txt&fl=timestamp,original" | awk '{ print "https://web.archive.org/web/" $1 "id_/" $2 }' | sort -u > urls.txt
The above gets output to urls.txt, then we'll feed urls.txt to wget to retrieve all of the URLs.
wget --input-file=urls.txt --force-directories --protocol-directories --adjust-extension --convert-links --no-clobber
What you end up with is a directory with relatively the same path and contents as the original site. It's not perfect, especially because sometimes not all pages are archived even though the hyperlink is referenced from indexed pages.
This is very helpful for businesses that had a disruption but have no saved content of their own. It's not perfect but can restore content that was there previously but don't expect 24-48 hours fresh, think in terms of weeks or months.
Debian 10 is now in the archive, yet you may still need to migrate and do testing.
deb http://archive.debian.org/debian buster main contrib non-free
deb-src http://archive.debian.org/debian buster main contrib non-free
deb http://archive.debian.org/debian buster-updates main contrib non-free
deb-src http://archive.debian.org/debian buster-updates main contrib non-free
deb http://archive.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ buster/updates main contrib non-free
If your environment does not have a text editor like vi or nano just do this/use echo:
echo "deb http://archive.debian.org/debian buster main contrib non-free
deb-src http://archive.debian.org/debian buster main contrib non-free
deb http://archive.debian.org/debian buster-updates main contrib non-free
deb-src http://archive.debian.org/debian buster-updates main contrib non-free
deb http://archive.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ buster/updates main contrib non-free" > /etc/apt/sources.list
Here is an old VM example which is strange, it looks like Debian has removed this from all the repos. The easiest solution is just to upgrade to a kernel with a working/supported headers, but we don't like doing things the hard way.
In this case it's a 1 year old Debian 11 install, but this can and does happen on random Linux distros sometimes, especially Debian based.
apt-cache search `uname -r`
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
linux-image-5.10.0-34-amd64 - Linux 5.10 for 64-bit PCs (signed)
Normally you should find a headers but you don't in this case, even with an apt update, it just doesn't exist. We even enabled the backports with no luck:
deb http://archive.debian.org/debian bullseye-backports main contrib non-free
deb-src http://archive.debian.org/debian bullseye-backports main contrib non-free
In this example we are using 5.10.0-34 but there's no headers for it, but if we increment and search for -35 it does exist:
apt-cache search 5.10.0-35-amd64
linux-headers-5.10.0-35-amd64 - Header files for Linux 5.10.0-35-amd64
linux-image-5.10.0-35-amd64-dbg - Debug symbols for linux-image-5.10.0-35-amd64
linux-image-5.10.0-35-amd64-unsigned - Linux 5.10 for 64-bit PCs
linux-image-5.10.0-35-amd64 - Linux 5.10 for 64-bit PCs (signed)
So no you're not crazy, 5.10.0-34-amd64 does not exist in the repos, at least not any we have.
Let's try searching directly on Debian's packages site:
https://packages.debian.org/search?keywords=linux-image-5.10.0-34-amd64
First of all make sure contrib is enabled in /etct/apt/sources.list, if not follow this guide to add "non-free contrib" to the repos.
apt install zfsutils-linux
Let's see the main binaries that come with zfs:
dpkg -L zfsutils-linux|grep bin
/sbin
/sbin/fsck.zfs
/sbin/mount.zfs
/sbin/zdb
/sbin/zfs
/sbin/zfs_ids_to_path
/sbin/zgenhostid
/sbin/zhack
/sbin/zpool
/sbin/zstream
/sbin/zstreamdump
/sbin/zvol_wait
/usr/sbin
/usr/sbin/arc_summary
/usr/sbin/arcstat
/usr/sbin/dbufstat
In most cases you will spend most of your time using the "zfs", and "zpool" commands in my experience.
ZFS is a block device tool, so you will need extra drives that are empty or are OK to empty. Be 100% sure of the drives you need to use and that they don't have important data before proceeding.
In this case here is an example of 8 drives all of the same size.
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
/dev/sdg
/dev/sdh
Normally in typical RAID thinking some popular ways might be RAID 0 for maximum performance and storage capacity but that is normally bad since data loss is guaranteed with the failure of even one drive.
Another way could be RAID 1 which give good performance and faster read speeds but you would lose half of your capacity (eg. 4 drives total space since the other 4 are essentially mirrors).
Another way could have been RAID10 which is a decent blend of performance and redundancy but you still lose 4 drives worth of capacity. Essentially this is 2 arrays of RAID 1 stripped into a RAID 0.
With RAID 5 you would lose only 1 disk's capacity but have performance issues, plus it takes forever to build or rebuild arrays that are larger like this due to the parity calculations.
So what are some similar options in ZFS?
ZFS's advantage is that it has more flexibility compared to tradtional RAID where disks must be of the same size. It makes upgrading the array and increasing the size very difficult, whereas ZFS can handle this fairly well in most cases.
Let's talk about the main modes of ZFS
mirror: Basically this is just like RAID 1 but you have the benefit of no bitrot concerns and huge redundancy, plus the easier path of upgrading your space in the future.
The number in the name is the amount of disks you can lose before having dataloss, eg. RAIDZ1 means 1 disk can fail, Z2 means 2, and 3 means 3 can fail.
RAIDZ1: 87.5% capacity
RAIDZ2: 75.0% capacity
RAIDZ3: 62.5% capacity
As we can see, we are mainly trading a combination of disk capacity for efficiency and in generally most cases you are more efficient and redundant compared to RAID, with the benefit of easier upgrade paths if you want to upgrade your disks and array.
In my example we'll use the 8 disks in a RAIDZ2 configuration, giving us a decent performance and redundancy. Of course you would adjust this to the level of fault tolerance you need.
Before we do that we should be familar with the main zpool commands:
usage: zpool command args ...
where 'command' is one of the following:
version
create [-fnd] [-o property=value] ...
[-O file-system-property=value] ...
[-m mountpoint] [-R root]
destroy [-f]
add [-fgLnP] [-o property=value]
remove [-npsw]
labelclear [-f]
checkpoint [-d [-w]]
list [-gHLpPv] [-o property[,...]] [-T d|u] [pool] ...
[interval [count]]
iostat [[[-c [script1,script2,...][-lq]]|[-rw]] [-T d | u] [-ghHLpPvy]
[[pool ...]|[pool vdev ...]|[vdev ...]] [[-n] interval [count]]
status [-c [script1,script2,...]] [-igLpPstvxD] [-T d|u] [pool] ...
[interval [count]]
online [-e]
offline [-f] [-t]
clear [-nF]
reopen [-n]
attach [-fsw] [-o property=value]
detach
replace [-fsw] [-o property=value]
split [-gLnPl] [-R altroot] [-o mntopts]
[-o property=value]
initialize [-c | -s] [-w]
resilver
scrub [-s | -p] [-w]
trim [-dw] [-r
import [-d dir] [-D]
import [-o mntopts] [-o property=value] ...
[-d dir | -c cachefile] [-D] [-l] [-f] [-m] [-N] [-R root] [-F [-n]] -a
import [-o mntopts] [-o property=value] ...
[-d dir | -c cachefile] [-D] [-l] [-f] [-m] [-N] [-R root] [-F [-n]]
[--rewind-to-checkpoint]
export [-af]
upgrade
upgrade -v
upgrade [-V version] <-a | pool ...>
reguid
history [-il] [
events [-vHf [pool] | -c]
get [-Hp] [-o "all" | field[,...]] <"all" | property[,...]>
set
zpool create -f ourmirror raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj
The above created a ZFS pool called "ourmirror" with the raidz2 format and used the devices /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj
We can now check the status:
zpool status
pool: ourmirror
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
ourmirror ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
sdi ONLINE 0 0 0
sdj ONLINE 0 0 0
errors: No known data errors
zpool iostat 1
This will show the iostats of all pools every 1 second.
capacity operations bandwidth
pool alloc free read write read write
---------- ----- ----- ----- ----- ----- -----
ourmirror 4.73T 124.4T 179 238 8.88M 35.1M
Here is an example /etc/apt/sources.list after a default Debian 11 install but generally this applies to almost any Debian.
# deb cdrom:[Debian GNU/Linux 11.2.0 _Bullseye_ - Official amd64 NETINST 20211218-11:12]/ bullseye main
#deb cdrom:[Debian GNU/Linux 11.2.0 _Bullseye_ - Official amd64 NETINST 20211218-11:12]/ bullseye main
deb http://deb.debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
# bullseye-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bullseye-updates main
deb-src http://deb.debian.org/debian/ bullseye-updates main
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
             Â
deb http://deb.debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
deb http://deb.debian.org/debian/ bullseye main non-free contrib
deb-src http://deb.debian.org/debian/ bullseye main non-free contrib
Now you'll have access to additional, often missing or newer packages than the standard main Debian repos provide.
Sometimes Ceph breaks if you make any errors or wrong moves while initially configuring it.
rm /var/lib/ceph/*
pveceph purge
After looking at several deployments of VMWare, we had one deployment where the company enabled balloon mode which is essentially a way to overcommit memory the hostnode(s) don't have. Let's say you have put your database into memory or use a cached service in Apache or haproxy/nginx. VMWare will start taking some portions of these and at some point it corrupts things and the application running will either crash, malfunction or segfault.
Another factor is that OOM will be triggered artificially. Take say a 16G VM that runs on a VMWare ESXi/Vsphere with the EXACT same OS image/kernel, and running the same container. At some point the one with balloon will probably hit OOM and you may never be able to reproduce it on a non-Balloon VM/host.
Balloon is horrible because it feels like the old days of computing with a slow HDD where you have too little RAM and your computer is swapping.
It sounds similar to KSM in KVM but KSM is smart enough to only work with shared pages of duplicated memory. Eg. if you had 200 VMs or containers using duplicated memory (eg. using a certain binary) it will combine those into one memory space to conveniently save memory duplication.
vmware-toolbox-cmd stat balloon
0 MB
You are looking for the number to be 0 but note it doesn't mean it won't start ballooning later on. This is more likely when you have processes that use more memory 1-2G+. Another symptom is that you will likely find the process that is getting ballooned will be slow (eg. even a docker ps or kubectl will be slower than normal).
#Temporarily and instantly disable balloon:
modprobe -r vmw_balloon
# disable for next boot
echo "blacklist vmw_balloon" | tee /etc/modprobe.d/disable-balloon.conf
#update iniitramfs so it will be disabled after reboot
update-initramfs -u
If you are in an environment where you cannot use systemctl or otherwise kill apache, just do a manual graceful restart which does the same thing essentially without killing the process which may impact the service or container (eg. in Docker).
apache2ctl graceful
A lot of special characters and non-English will display as gibberish if you don't enable UTF-8 locale which is not done by default.
An example of things you may see without UTF-8
??~N?~[?
docker exec -it -e LANG=C.UTF-8
export LANG=C.UTF-8
We know it is deprecated but there are still systems that are running Debian 8, or at least applications that used old packages such as PHP 5 that you may need an environment to stage testing/updates for it.
deb http://archive.debian.org/debian/ jessie main contrib non-free
deb http://archive.debian.org/debian-security jessie/updates main contrib non-free
If you are in Docker there is no vi/nano or editor so you need to echo into it:
echo "deb http://archive.debian.org/debian/ jessie main contrib non-free
deb http://archive.debian.org/debian-security jessie/updates main contrib non-free" > /etc/apt/sources.list
If you need a basic LAMP setup then install these packages:
apt install vim php5-mysql libapache2-mod-php5 apache2 mysql-server wget
Their Live CD's are set to autologin, but if you go away for a bit you will find you are presented with a login prompt for the user named "user".
The password will be "live", which is not necessarily obvious when you first login to Debian.

Forbidden
You don't have permission to access this resource.
This is what you'll see in your browser (above).
[authz_core:error] [pid 338:tid 338] [client 1.2.3.4:55046] AH01630: client denied by server configuration:
This is because you need the following in your vhost config under
Require all granted
The client needs a new connection for this request as the requested host name does not match the Server Name Indication (SNI) in use for this connection.
Before reading this, I assume you've done all the proper troubleshooting and you are 100% sure the CDN and backend server is configured correctly.
This can often happen with load balancer's and CDNs if the CDN/balancer to backend server don't use the same ports.
On CDN Provider, you define Backend/Origin Server A for www.cooldomain.com
When a user hits CDN Provider with their request host as www.cooldomain.com,your CDN then translates that to a backend server.
Let's say the backend server is 1.2.3.4 on port 30000.
Usually the real backend service listens on say Apache port 443 for SSL, you are getting this as an SNI error because the port doesn't match. Apache or whatever service wants to know the real user port is 443, but you are being redirected from port 30000 which breaks SNI essentially. Another way of thinking of this is that NAT is involved or some port translation if you are hitting port 30000 and being redirected to port 443 on an internal/LAN IP. This is where things are getting broken.
Make sure the SNI is sent forcefully such as in haproxy add this:
server server1 1.2.3.4:30000 ssl verify none sni req.hdr(host)
If that doesn't work you will need to use more public IPs but this breaks some applications as sometimes the backend server is reallly just another load balancer too unless you have multiple public facing IPs for the load balancers.
Normally the first thing you would think is that you should use the host network in Docker but this loses the isolation, in that case I'd rather use LXC and a public IP or a full VM with public IP to avoid these issues.
I assume you have also ruled out any firewall issues on either end, that RTP or SIP signaling is not being blocked by either side.
Before starting, I assume you have forwarded the listening IP of Asterisk into the container and the relevant rtp ports (eg. forward port 5060 to the Asterisk in Docker and ports 10000-20000 to the same.
I assume in sip.conf that you have set externip and localnets appropriately (eg. externip is the public IP of Docker and localnets are your local/LAN Docker subnet). More on the Docker subnet fun part later.
I also assume the peer/clients sip.conf have nat enabled.
If we watch tcpdump we can see anything that connects from a direct public IP shows a public IP even when connecting to Asterisk on port 5060.
However, when you also take a client that is behind NAT or not and connect to your Asterisk behind Docker, you will see the connecting client as docker0 IP/gateway eg. 172.17.0.1 (sip show peers) instead of their public IP when you check your peers in Docker.
First of all, .1 should not be considered local, even though it is but remember .1 really represents the path back to the public IP of the client.
1.) The client behind NAT connects to Asterisk, SIP signaling works fine, you can get and make calls but there is 0 audio in either direction. If you run a tcpdump on the client side network, you will see it is not sending any UDP packets to the Asterisk IP. This is because if you check the SDP while debugging in Asterisk (sip set debug on) you will see it tells the client to connect to the Docker IP of Asterisk eg. 172.17.0.x, of course that is impossible since that is local to Docker.
2.) The other problem is that the SDP that Docker has for the client will tell it to connect to the client on it's LAN IP eg. 10.0.0.x which again is impossible.
In both cases we should be dealing with the public IP of the client and of Asterisk, but even with localnets and externip, that doesn't happen (although it works fine to an external SIP trunk).
I set localnets as the IP of the Asterisk container itself, and that forced Asterisk to understand to use it's own public IP to the client and to use the client's public IP.
localnets=172.17.0.x ;where x is the actual IP of your Asterisk container, if previously tried the whole subnet but that broke things as we can understand .1 is not really local in effect
If you get this error you may assume it is a lack of memory, which it could be, but more likely it is the default memory size of 256M. The file in this example was about 350M big which of course exceeds the virtual memory limits.
This makes sense in smaller mail servers but if you have large amounts of users or e-mails this limit should be bumped.
doveconf -n | grep -E 'vsz_limit|service imap'
default_vsz_limit = 4 G
service imap-login {
#If you don't see any default size limit then it has defaulted to 256M which is not enough for larger mail servers.
The default will be something like this (even if commented it is still the default or if no default is set)
#default_vsz_limit = 256M
So the total amount of memory consumed by related proceses by dovecot cannot exceed this.
To fix it, uncomment and change 256M to a much larger number like 2048M or 20048M etc.., as long as your server has enough memory to support it.
default_vsz_limit = 4096M
In newer versions of Dovecot usually the /etc/dovecot/conf.d files are ignored:
/etc/dovecot/conf.d/10-master.conf
In newer versions of Asterisk it seems to default to /usr/share/asterisk/sounds even with no specific setting in /etc/asterisk/asterisk.conf even though the normal default even in Asterisk documentation for Version 20 says /var/lib/asterisk/sounds
[Nov 3 23:46:02] WARNING[2197][C-00000016]: file.c:824 ast_openstream_full: File for-tech-support does not exist in any format
The file does exist in /var/lib/asterisk/sounds
cp -a /var/lib/asterisk/sounds/* /usr/share/asterisk/sounds/
Starting Apache httpd web server: apache2 failed!
The apache2 configtest failed. ... (warning).
Output of config test was:
mktemp: failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file or directory
chmod: missing operand after '755'
Try 'chmod --help' for more information.
If you are on a locked down environment, remember that /var/lock is a symlink to /run/lock as you can see here:
root@1c549706e153:~# ls -al /var/lock
lrwxrwxrwx 1 root root 9 Sep 29 00:00 /var/lock -> /run/lock
It could be that somehow you or something else deleted /run/lock so just recreate and chmod 755:
mkdir -p /run/lock
chmod 755 /run/lock
vm.swappiness = 1
vm.vfs_cache_pressure = 800
vm.dirty_ratio = 5
vm.dirty_background_ratio = 2
vm.min_free_kbytes = 65536 # Reserve 64MB for emergencies
This is mainly useful for smaller systems/VMs/dev test/Raspberry Pi etc.. but even servers with huge amounts of RAM can start putting a ton of things into buffers and cache especially if you open large files constantly.
[1481082.784899] ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[1481087.792922] ata6.00: qc timeout (cmd 0xec)
[1481087.792934] ata6.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[1481087.792965] ata6.00: revalidation failed (errno=-5)
[1481088.107288] ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[1481095.385983] ata6.00: configured for UDMA/133
We can clearly see from the errors above that something is going wrong with ata6 or perhaps port "SAS/SATA port 6" but which might that be?
Use this handy script to find out
ATAPORT=ata6
ls /sys/class/ata_port/$ATAPORT/../../host*/target*/*/block/
If you don't have a nice enclosure that makes it clear which bay has which drive, you'll need to physically check inside the server or chassis.
smartctl -a /dev/sdj|grep -i serial
This way we'll know we've checked/replaced the correct drive by matching the serial.
In my cases like this actual example though the problem could be a power problem, or even more likely a bad SATA/SAS cable.
Remebmer to change ata6 to the ata# of your error.
ATAPORT=ata6
drive=`ls /sys/class/ata_port/$ATAPORT/../../host*/target*/*/block/`
smartctl -a /dev/$drive|grep -i serial
In this case, I am assuming you have verified the firewall on either side, and the network conditions are not an issue (eg. no packet loss, no crazy jitter and normal latency).
In some phones such as Grandstream or on your PBX, make sure you do NOT use the "adaptive jitter buffer" or similar settings. If possible disable that or change it to "fixed".
If you do, you may wonder why when you first start a call the user cannot hear you or the voice seems very choppy and roboticly slow/fast, this is because of the "adaptive jitter buffer" breaking things.
If you have any such setting in your PBX, ATA or phone firmware, disable that as it is often the cause of weird voice quality issues.
Are you or your users tired of getting support requests for the missing Visual C++ Library DLL's? Some programs prompt you to install them but the easiest way is to modify your Windows image or program to just include these already.
The easiest way is to use Microsoft's guide to copy the right architecture of DLL's and include them in your software and make sure the software adds its directory to the PATH for Windows.
https://learn.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute?view=msvc-160
| Visual C++ Library | Description | Applies to |
|---|---|---|
vcruntime[version].dll |
Runtime Library for native code. | Applications that use the normal C and C++ language startup and termination services. |
vccorlib[version].dll |
Runtime Library for managed code. | Applications that use the C++ language services for managed code. |
msvcp[version].dll and msvcp[version_dotnumber].dll |
C++ Standard Library for native code. | Applications that use the C++ Standard Library. |
concrt[version].dll |
Concurrency Runtime Library for native code. | Applications that use the Concurrency Runtime. |
mfc[version].dll |
Microsoft Foundation Classes (MFC) Library. | Applications that use the MFC Library. |
mfc[version][language].dll |
Microsoft Foundation Classes (MFC) Library Resources. | Applications that use specific language resources for MFC. |
mfc[version]u.dll |
MFC Library with Unicode support. | Applications that use the MFC Library and require Unicode support. |
mfcmifc80.dll |
MFC Managed Interfaces Library. | Applications that use the MFC Library with Windows Forms Controls. |
mfcm[version].dll |
MFC Managed Library. | Applications that use the MFC Library with Windows Forms Controls. |
mfcm[version]u.dll |
MFC Managed Library with Unicode support. | Applications that use the MFC Library with Windows Forms Controls and require Unicode support. |
vcamp[version].dll |
AMP Library for native code. | Applications that use the C++ AMP library code. |
vcomp[version].dll |
OpenMP Library for native code. | Applications that use the C++ OpenMP library code |
I find this this very handy for video projects which involve nvidia cards. Imagine if you need to know if the card support a specific codec, resolution or even hardware encoding or decoding, this is a huge timesaver.
One caveat is to double check forums and other reports/driver info as sometimes support is listed but may not be present in specific driver versions or OS's (eg. sometimes h265 is supported in the Windows driver but not Linux).
This is one area that Nvidia is quite poor at whereas the amdgpu driver even with onboard GPU/APUs may often support encode or decode that some nvidia cards or driver versions do not support.
https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
From Shanghai/area to Japan/Tokyo area.
OCN/NTT was quite disappointing as ping times were drastically different, between 215 and 96ms as mentioned.
Softbank consistently performed well with China.
So-net was the lowest ping we've seen to Japan.
Asahi was not bad, and still better than the best ping we saw with NTT
The clear winners are not surprising if you follow Japanese internet trends, Softbank and So-net are consistently ranked among the best and most consistent internet providers in Japan. It's not only to China that they are good, but a strong indication that their international routing in general is superior.
Change $file to the file you wanta to convert and $file-h264 is the name of the converted file.
ffmpeg -i $file -c:v libx264 -profile:v high -preset slow -tune -film -crf 18 $file-h264.mp4
Of course you can adapter the -c:v libx264 to any other format you might want.
Here is a handy script to mass convert to h264:
for file in `ls *.mp4`; do
echo ffmpeg -i $file -c:v libx264 -profile:v high -preset slow -tune -film -crf 18 $file-h264.mp4
done
Add this to your Apache config:
LoadModule log_forensic_module modules/mod_log_forensic.so
Restart Apache
Set the location of the forensic log.
ForensicLog /var/log/apache2/forensic.log
Here is an example of an entry in forensic:
+16831:68ca525e:3c5|GET /some/url HTTP/1.1|sec-fetch-dest:document|user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15|accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8|referer:|sec-fetch-site:same-origin|sec-fetch-mode:same-origin|accept-language:en-US,en;q=0.9|priority:u=0, i|sec-fetch-user:?1|X-Forwarded-For:1.2.3.4|host:yourdomain.com|Accept-Encoding:gzip|X-Varnish:7275706
This can be crucial for debugging CDN/Load Balancer issue but also for identifying malicious bots. Many of them have "holes" in how they operate and assume many admins and sites do not properly check or filter headers.
For example if the "host:" entry is not your host, it is probably not a valid request, so you should block it at the WAF or CDN level.
Another fun trick is that sometimes bots claim to be "Windows NT" or "Mac OS" but then other parts of the header may indicate Linux, which again is impossible.
rsync: [generator] link /slackware/slackware-10.2/slackware/l/install-packages" => slackware-10.0/extra/ham/install-packages failed: No space left on device (28)
Just a reminder that rsync may report this error "No space left on device (28)" even when it's true, meaning your array/partition has lots of space left and assuming df -i shows lots of inodes.
This can often happen on various file/fuse based distributed filesystems like gluster, especially when creating symlinks. You may have to disable symlinks and use hardlinks, or no links at all to solve this issue.
nestybox is an alternative runc instead of the default containerd which is more hardened, efficient and secure. It even allows you to do a lot of things you normally couldn't without having privileged mode which is great for development and many other functions.
However, the only drawback is that you must not have any docker containers already, if so you have to back them up / delete them before proceeding.
Step 1.) Get the latest .deb / package:
wget https://downloads.nestybox.com/sysbox/releases/v0.6.7/sysbox-ce_0.6.7-0.linux_amd64.deb
sysbox github https://github.com/nestybox/sysbox
Step 2.) Install required packages
apt install rsync jq
Step 3.) Install package
dpkg -i sysbox-ce_0.6.7-0.linux_amd64.deb
Step 4.) How to use it:
docker run --runtime=sysbox-runc ubuntu:20.04
apk add --no-cache python3 nodejs npm py3-setuptools g++ make
npm install -g wetty
shellinabox 2.21+b1
The version above has the issue in Debian 11, after confirming that the .pem is valid and contains the private and public key, and permissions are valid, I would still get this error.
I then tried the same .pem in Debian 12 with shellinabox 2.21+b2 and didn't encounter the error.
shellinabox is either error prone or the process of packaging or compiling has broken something (I wonder if the Debian 11 maybe didn't have SSL support compiled in somehow?).
So if you get this error, perhaps try a different OS or compiling it yourself and see if the error goes away.
I doubt many people are doing this, but if you want an all Linux dev environment for Windows apps that you have made in Python, then you're probably using Wine, Python and maybe pyinstaller.
The below error happened with pyinstaller and it has a lot to do with how Wine identifies paths/drives vs where you execute python.exe from
Never execute python commands from /root because that maps to Wine's default Z:, so any operations performed in /root such as would happen in a Docker container, make Python use Z: which of course breaks things since modules you install and other things need to go into the C: where Python is installed to.
So for example you could cd into /root/.wine/python/dir and run wine python.exe -m pip install something and that is OK but you cannot do it while being in /root/ itself
Another way to avoid this problme is to execute python.exe with the full path from anywhere but /root
Here is an example of bad stuff happening if you do that (keep in mind that in this examle TK and TCL are fully installed by the Python installer already):
10210 INFO: TclTkInfo: initializing cached Tcl/Tk info... 10608 WARNING: tkinter installation is broken. It will be excluded from the application
Digging deeper look at the beginning phase of pyinstaller in this broken example:
711 INFO: PyInstaller: 6.15.0, contrib hooks: 2025.8
712 INFO: Python: 3.8.9
713 INFO: Platform: Windows-7-6.1.7601-SP1
713 INFO: Python environment: Z:root.winedrive_cusersrootLocal SettingsApplication DataProgramsPythonPython38-32
717 INFO: wrote Z:roottkinter-final-updatePILAntialiasVersion.spec
731 INFO: Removing temporary files and cleaning cache in C:usersrootLocal SettingsApplication Datapyinstaller
736 INFO: Module search paths (PYTHONPATH):
['Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\Scripts\pyinstaller.exe',
'Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\python38.zip',
'Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\DLLs',
'Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\lib',
'Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32',
'Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\lib\site-packages',
'Z:\root']
Compare the above with a working good example from below:
793 INFO: Python: 3.8.9
794 INFO: Platform: Windows-7-6.1.7601-SP1
794 INFO: Python environment: C:usersrootLocal SettingsApplication DataProgramsPythonPython38-32
796 INFO: wrote Z:roottkinter-final-updatePILAntialiasVersion.spec
811 INFO: Removing temporary files and cleaning cache in C:usersrootLocal SettingsApplication Datapyinstaller
826 INFO: Module search paths (PYTHONPATH):
['Z:\root\.wine\drive_c\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\Scripts\pyinstaller.exe',
'C:\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\python38.zip',
'C:\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\DLLs',
'C:\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\lib',
'C:\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32',
'C:\users\root\Local Settings\Application '
'Data\Programs\Python\Python38-32\lib\site-packages',
'Z:\root']
We can notice the drive Z: for everything, even though I never installed Python itself there (it was installed to C:)
So what created the difference that broke everything?
I didn't recall that in my original dev environment I did this when installing the pip modules
cd ~/".wine/drive_c/users/root/Local Settings/Application Data/Programs/Python/Python38-32"
wine python.exe -m pip install pyinstaller reportlab pdf2image pillow
I got more/fancy efficient after scripting everything and knowing where everything was and did this:
This way below breaks everything and causes pyinstaller especially do think everything you need should come from Z: which it then uses to look for all dependencies of Python only in Z: which breaks since they are really in C:
wine ~/".wine/drive_c/users/root/Local Settings/Application Data/Programs/Python/Python38-32/python.exe" -m pip install pyinstaller reportlab pdf2image pillow
WARNING: The scripts pip.exe, pip3.8.exe and pip3.exe are installed in 'Z:root.winedrive_cPython38Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The scripts pyi-archive_viewer.exe, pyi-bindepend.exe, pyi-grab_version.exe, pyi-makespec.exe, pyi-set_version.exe and pyinstaller.exe are installed in 'Z:root.winedrive_cPython38Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The script normalizer.exe is installed in 'Z:root.winedrive_cPython38Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed altgraph-0.17.4 charset-normalizer-3.4.3 importlib-metadata-8.5.0 packaging-25.0 pdf2image-1.17.0 pefile-2023.2.7 pillow-10.4.0 pip-25.0.1 pyinstaller-6.15.0 pyinstaller-hooks-contrib-2025.8 pywin32-ctypes-0.2.3 reportlab-4.4.3 zipp-3.20.2
Yes, even though Docker has no devices, we can still fool it well enough by passing through our X server info as a bind mount and setting our DISPLAY environment variable.
Grant permission to docker to use the xhost/xserver
xhost +local:docker
non-network local connections being added to access control list
If you didn't do the above you will get an error like this when trying to launch a GUI app from Docker:
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
Here is an example of doing it to Debian 11:
The relevant portion is to add the bind mount "-v /tmp/.X11-unix/:/tmp/.X11-unix"
and set the display environment variable: "-e DISPLAY=$DISPLAY debian:11"
docker run -v /tmp/.X11-unix/:/tmp/.X11-unix -it -e DISPLAY=$DISPLAY debian:11
This is often related to your network traffic and that most of the time I find the kernel just uses a single core to send or receive via your NIC.
This can be adjusted like this so that multiple cores are used to send and receive data via your NIC (eth0).
multicore eth0 RX
#enable multicore
echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus
# enable flow and entries count or this will not have an impact
echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
echo 32768 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
multicore eth0 TX
echo f > /sys/class/net/eth0/queues/tx-0/xps_cpus
You may not notice if you are not running servers or other high throughput machines but in all stress tests that I've done and on real life high throughput nodes, it has made a huge difference in network performance and stopped high pings due to NIC traffic being pegged to a single core.
Watch it in action:
watch -n 1 'cat /proc/interrupts | grep -E "(CPU|eth|enp|IRQ)"'
If you find yourself updating an old Debian/need to upgrade and get this error, generally you just have to update sources.list by setting all hostname references to archive.debian.org
Backup your sources.list
cp /etc/apt/sources.list /etc/apt/sources.list-bk
Change deb.debian and snapshot.debian
sed -i s/"deb.debian"/"archive.debian"/g /etc/apt/sources.list
sed -i s/"snapshot.debian"/"archive.debian"/g /etc/apt/sources.list
root@206f261b684c:/# apt update
Ign:1 http://deb.debian.org/debian buster InRelease
Ign:2 http://deb.debian.org/debian-security buster/updates InRelease
Ign:3 http://deb.debian.org/debian buster-updates InRelease
Err:4 http://deb.debian.org/debian buster Release
404 Not Found [IP: 151.101.214.132 80]
Err:5 http://deb.debian.org/debian-security buster/updates Release
404 Not Found [IP: 151.101.214.132 80]
Err:6 http://deb.debian.org/debian buster-updates Release
404 Not Found [IP: 151.101.214.132 80]
Reading package lists... Done
E: The repository 'http://deb.debian.org/debian buster Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://deb.debian.org/debian-security buster/updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://deb.debian.org/debian buster-updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
root@206f261b684c:/# cat /etc/apt/sources.list
# deb http://snapshot.debian.org/archive/debian/20240612T000000Z buster main
deb http://deb.debian.org/debian buster main
# deb http://snapshot.debian.org/archive/debian-security/20240612T000000Z buster/updates main
deb http://deb.debian.org/debian-security buster/updates main
# deb http://snapshot.debian.org/archive/debian/20240612T000000Z buster-updates main
deb http://deb.debian.org/debian buster-updates main
root@206f261b684c:/# sed s/"deb.debian"/"archive.debian"/g /etc/apt/sources.list
# deb http://snapshot.debian.org/archive/debian/20240612T000000Z buster main
deb http://archive.debian.org/debian buster main
# deb http://snapshot.debian.org/archive/debian-security/20240612T000000Z buster/updates main
deb http://archive.debian.org/debian-security buster/updates main
# deb http://snapshot.debian.org/archive/debian/20240612T000000Z buster-updates main
deb http://archive.debian.org/debian buster-updates main
root@206f261b684c:/# sed -i s/"deb.debian"/"archive.debian"/g /etc/apt/sources.list
root@206f261b684c:/# sed -i s/"snapshot.debian"/"archive.debian"/g /etc/apt/sources.list
I am mainly used to the enterprise where most connections are deployed by some "normal" kind of fiber eg SFP+, QSFP+, SFP28, QSFP28 and those modules are almost fool proof, run cool and are reliable. Like most normal admin users, I like to use my own hardware for routing and switching rather than the often poor equipment provided by the ISP, especially when you have enterprise hardware that will be more reliable.
The normal path is that you would just take the fiber optic link on an SFP or SFP+ and plug it in directly into your firewall, router or switch, cutting out the extra power usage, insecure ISP devices and another point of failure.
But enter the situation with a lot of home and office connections and anything on ISPs like Telus, AT&T, most ISPs in Japan etc... that are faster than 1.5G, they no longer use the standard GPON which just registers via the serial# of the module that the ISP has on file.
Now you need a device called the NAH (Network Access Hub) which uses XGSPON which is authenticated via this extra and unnecessary device/NAH. Plugging in an XGSPON SFP+ module to your router/switch will not work like a normal GPON.
After more testing, I almost think that #1 in some cases here may be more reliable, yes there is the chance of authentication parameters changing which would instantly take you offline. However, many of the SFP+ to RJ45 adapters are known to be unreliable and randomly die. In theory if your XGSPON module doesn't die, then I will predict it will probably be more reliable than the #2 adapter method.
There are some solutions which modify XGSPON modules from fs.com so you can use it as normal, but they are pricey and this can be risky if the authentication mode/details changes in the future. In plain English, you could be away from home and need access to your home network but an ISP Update could render your internet access useless. Here is the procedure on Github to hack the XGSPON SFP+ module from fs.com.
As much as I hate the NAH, this is the most reliable way for the reasons mentioned in #1. With a caveat being that I don't trust these adapters, they can die. For example one of mine died after 3 days. They do say the 80M are more reliable.
Recommended 80M SFP+ to RJ45
The 80M or 100M units use the BCM84891L Broadcom chip which is considered more reliable in my experience.
My 80M unit has been going strong for over a month now and temps vary between 42-48C which appears to be based on usage, whereas the 30M units seem to stay at almost a static temperature.
Amazon affil Link to the 80M 10G SFP+ RJ45 adapter I use.
I don't recommend the 30M SFP+ modules anymore below.
The 30Ms almost always use the Marvell AQR113C as mentioned below which is a chip that is proven to overheat and not last (eg. mine died after just 3 days!).
One module I recently tested has an ID of "SFP+-10G-SR" and runs at a reasonable 51C which is much better than what many users report with other modules (eg. burning hot 80-90C). I cannot be certain if the unit runs cool because of the design it claims to use which minimizes heat, or if it is because my enterprise switch has active cooling.
It seems almost all 30M SFP+ modules use the Marvell AQR113C chip which no matter the brand is often not reliable.
The 80M or 100M SFP+ modules usually use Broadcom BCM84891L which is known to be a cooler running chip. It does cost more but if they last longer then it is worth it.
After testing with heavy use for 3-4 days the temperature stayed the same but the module dies/drops out which causes downtime/packetloss:
Jan 25 13:04:08 chassism[1243]: link 3 SFP receive power low warning cleared
Jan 25 13:07:31 mib2d[1262]: SNMP_TRAP_LINK_DOWN: ifIndex 561, ifAdminStatus up(1), ifOperStatus down(2), ifName xe-0/1/3
Jan 25 13:07:33 chassism[1243]: link 3 SFP receive power low alarm set
Jan 25 13:07:33 chassism[1243]: link 3 SFP receive power low warning set
Jan 25 13:07:43 chassism[1243]: link 3 SFP receive power low alarm cleared
Jan 25 13:07:43 chassism[1243]: link 3 SFP receive power low warning cleared
Here is the affiliate link to the bad/dying after 3 days SFP+ to RJ45 item I bought.

Even when pushing 10 Gigabit in both directions the module stayed at the same temp or maybe went to 52C.
These are fairly classic symptoms but they may not present obviously enough early on.
I had a power supply issue with my old Corsair CX430 (430 Watt).
The build had two old 95W Xeon CPUs, 2 USB devices and a PCI-E powered Nvidia Quadro or at one point a GT710. This shouldn't have overwhelmed the PS but this power supply is known to be weak by many users.
Symptom 1. Graphics Issues
This would only present it self after coming back with the screensaver, when hitting the keyboard or mouse to stop the screensaver and get the login screen, it would just freeze for a number of seconds. I initially chalked it up to bad cooling or an old Nvidia driver.
Symptom 2. Mouse Issues
Sometimes the mouse would just freeze or not track properly, clearly in hindsight it was a power supply issue but the mouse itself also did test bad, so this was not completely obvious.
Symptom 3. USB Issues
I didn't have this particular issue but a lot of times I've seen issues with power supplies, you may notice a USB SSD does not work right or drops out. This is tricky to diagnose as it is often the USB SSD enclosure/cable itself, OR it is sometimes the internal cabling or resistance from motherboard to the front of the PC.
Symptom 4. Resetting randomly.
This one is fairly obvious but may slowly creep up. You may assume if you aren't at the PC all the time that it may be due to an update or even a bad motherboard or a watchdog service acting up.
Conclusion
If you ever have any issues like this, if practical, swap out for a known good power supply and see if any of these types of symptoms goes away.
In my example, I swapped in a known good 750W EVGA and all has been fine since (no resets, no screensaver freezing, no USB issues etc...)
In this quick tutorial we will deploy various AI models and compare the differences. We will be using smaller models so that most users should be able to follow this guide as long as they have at least 16G of memory and no other applications using much memory.
In this tutorial we recommend that you use Docker to deploy ollama. If you are not familiar with Docker, you can check our Docker Tutorial guide here.
I recommend having a Ubuntu or Debian host for this, but it is supported in Windows and Mac too.
Visit the Ollama website to download it.
Install curl if you don't have it already: apt update && apt install curl
curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
WARNING: Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
ollama serve&
Make sure you use the & so it puts the service in the background, yet it will still output to the console. This is very useful for debugging and troubleshooting performance issues.
2025/04/22 21:00:21 routes.go:1231: INFO server config env="map[CUDA_VISIBLE_DEVICES: GPU_DEVICE_ORDINAL: HIP_VISIBLE_DEVICES: HSA_OVERRIDE_GFX_VERSION: HTTPS_PROXY: HTTP_PROXY: NO_PROXY: OLLAMA_CONTEXT_LENGTH:2048 OLLAMA_DEBUG:false OLLAMA_FLASH_ATTENTION:false OLLAMA_GPU_OVERHEAD:0 OLLAMA_HOST:http://127.0.0.1:11434 OLLAMA_INTEL_GPU:false OLLAMA_KEEP_ALIVE:5m0s OLLAMA_KV_CACHE_TYPE: OLLAMA_LLM_LIBRARY: OLLAMA_LOAD_TIMEOUT:5m0s OLLAMA_MAX_LOADED_MODELS:0 OLLAMA_MAX_QUEUE:512 OLLAMA_MODELS:/root/.ollama/models OLLAMA_MULTIUSER_CACHE:false OLLAMA_NEW_ENGINE:false OLLAMA_NOHISTORY:false OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:0 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:* app://* file://* tauri://* vscode-webview://* vscode-file://*] OLLAMA_SCHED_SPREAD:false ROCR_VISIBLE_DEVICES: http_proxy: https_proxy: no_proxy:]"
time=2025-04-22T21:00:21.697Z level=INFO source=images.go:458 msg="total blobs: 0"
time=2025-04-22T21:00:21.697Z level=INFO source=images.go:465 msg="total unused blobs removed: 0"
time=2025-04-22T21:00:21.697Z level=INFO source=routes.go:1298 msg="Listening on 127.0.0.1:11434 (version 0.6.5)"
time=2025-04-22T21:00:21.697Z level=INFO source=gpu.go:217 msg="looking for compatible GPUs"
time=2025-04-22T21:00:21.727Z level=INFO source=gpu.go:377 msg="no compatible GPUs were discovered"
time=2025-04-22T21:00:21.727Z level=INFO source=types.go:130 msg="inference compute" id=0 library=cpu variant="" compute="" driver=0.0 name="" total="267.6 GiB" available="255.5 GiB"
Find the LLM you want to test on the ollama website.
Keep in mind that the larger the model, the more memory and more disk space and resources it consumes when running. For this reason, our example will use a smaller model.
ollama run qwen2.5:0.5b
Note that this smaller 0.5b model uses just about 397MB
You should see similar output as below and then have a chat prompt at the end.
ollama run qwen2.5:0.5b
[GIN] 2025/04/22 - 21:04:44 | 200 | 79.024µs | 127.0.0.1 | HEAD "/"
[GIN] 2025/04/22 - 21:04:44 | 404 | 455.218µs | 127.0.0.1 | POST "/api/show"
pulling manifest â ‡ time=2025-04-22T21:04:45.299Z level=INFO source=download.go:177 msg="downloading c5396e06af29 in 4 100 MB part(s)"
pulling manifest
pulling manifest
pulling c5396e06af29... 100% ▕██████████████████████████████████████████████████████████████████████████████■397 MB tpulling manifest
pulling c5396e06af29... 100% ▕██████████████████████████████████████████████████████████████████████████████■397 MB
pulling manifest
pulling c5396e06af29... 100% ▕██████████████████████████████████████████████████████████████████████████████■397 MB
pulling manifest
pulling c5396e06af29... 100% ▕██████████████████████████████████████████████████████████████████████████████■397 MB
pulling manifest
pulling manifest
pulling c5396e06af29... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████■397 MB
pulling 66b9ea09bd5b... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████■68 B
pulling eb4402837c78... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████■1.5 KB
pulling 832dd9e00a68... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████■11 KB
pulling 005f95c74751... 100% ▕██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████■490 B
verifying sha256 digest
writing manifest
success
[GIN] 2025/04/22 - 21:04:57 | 200 | 66.099807ms | 127.0.0.1 | POST "/api/show"
â ™ time=2025-04-22T21:04:57.759Z level=INFO source=server.go:105 msg="system memory" total="267.6 GiB" free="255.5 GiB" free_swap="976.0 MiB"
time=2025-04-22T21:04:57.759Z level=WARN source=ggml.go:152 msg="key not found" key=qwen2.vision.block_count default=0
time=2025-04-22T21:04:57.759Z level=WARN source=ggml.go:152 msg="key not found" key=qwen2.attention.key_length default=64
time=2025-04-22T21:04:57.759Z level=WARN source=ggml.go:152 msg="key not found" key=qwen2.attention.value_length default=64
time=2025-04-22T21:04:57.759Z level=INFO source=server.go:138 msg=offload library=cpu layers.requested=-1 layers.model=25 layers.offload=0 layers.split="" memory.available="[255.5 GiB]" memory.gpu_overhead="0 B" memory.required.full="782.6 MiB" memory.required.partial="0 B" memory.required.kv="96.0 MiB" memory.required.allocations="[782.6 MiB]" memory.weights.total="373.7 MiB" memory.weights.repeating="235.8 MiB" memory.weights.nonrepeating="137.9 MiB" memory.graph.full="298.5 MiB" memory.graph.partial="405.0 MiB"
llama_model_loader: loaded meta data with 34 key-value pairs and 290 tensors from /root/.ollama/models/blobs/sha256-c5396e06af294bd101b30dce59131a76d2b773e76950acc870eda801d3ab0515 (version GGUF V3 (latest))
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv 0: general.architecture str = qwen2
llama_model_loader: - kv 1: general.type str = model
llama_model_loader: - kv 2: general.name str = Qwen2.5 0.5B Instruct
llama_model_loader: - kv 3: general.finetune str = Instruct
llama_model_loader: - kv 4: general.basename str = Qwen2.5
llama_model_loader: - kv 5: general.size_label str = 0.5B
llama_model_loader: - kv 6: general.license str = apache-2.0
llama_model_loader: - kv 7: general.license.link str = https://huggingface.co/Qwen/Qwen2.5-0...
llama_model_loader: - kv 8: general.base_model.count u32 = 1
llama_model_loader: - kv 9: general.base_model.0.name str = Qwen2.5 0.5B
llama_model_loader: - kv 10: general.base_model.0.organization str = Qwen
llama_model_loader: - kv 11: general.base_model.0.repo_url str = https://huggingface.co/Qwen/Qwen2.5-0.5B
llama_model_loader: - kv 12: general.tags arr[str,2] = ["chat", "text-generation"]
llama_model_loader: - kv 13: general.languages arr[str,1] = ["en"]
llama_model_loader: - kv 14: qwen2.block_count u32 = 24
llama_model_loader: - kv 15: qwen2.context_length u32 = 32768
llama_model_loader: - kv 16: qwen2.embedding_length u32 = 896
llama_model_loader: - kv 17: qwen2.feed_forward_length u32 = 4864
llama_model_loader: - kv 18: qwen2.attention.head_count u32 = 14
llama_model_loader: - kv 19: qwen2.attention.head_count_kv u32 = 2
llama_model_loader: - kv 20: qwen2.rope.freq_base f32 = 1000000.000000
llama_model_loader: - kv 21: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001
llama_model_loader: - kv 22: general.file_type u32 = 15
llama_model_loader: - kv 23: tokenizer.ggml.model str = gpt2
llama_model_loader: - kv 24: tokenizer.ggml.pre str = qwen2
â ¹ llama_model_loader: - kv 25: tokenizer.ggml.tokens arr[str,151936] = ["!", """, "#", "$", "%", "&", "'", ...
llama_model_loader: - kv 26: tokenizer.ggml.token_type arr[i32,151936] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
llama_model_loader: - kv 27: tokenizer.ggml.merges arr[str,151387] = ["Ä Ä ", "Ä Ä Ä Ä ", "i n", "Ä t",...
llama_model_loader: - kv 28: tokenizer.ggml.eos_token_id u32 = 151645
llama_model_loader: - kv 29: tokenizer.ggml.padding_token_id u32 = 151643
llama_model_loader: - kv 30: tokenizer.ggml.bos_token_id u32 = 151643
llama_model_loader: - kv 31: tokenizer.ggml.add_bos_token bool = false
llama_model_loader: - kv 32: tokenizer.chat_template str = {%- if tools %}n {{- '<|im_start|>...
llama_model_loader: - kv 33: general.quantization_version u32 = 2
llama_model_loader: - type f32: 121 tensors
llama_model_loader: - type q5_0: 132 tensors
llama_model_loader: - type q8_0: 13 tensors
llama_model_loader: - type q4_K: 12 tensors
llama_model_loader: - type q6_K: 12 tensors
print_info: file format = GGUF V3 (latest)
print_info: file type = Q4_K - Medium
print_info: file size = 373.71 MiB (6.35 BPW)
â ¼ load: special tokens cache size = 22
â ´ load: token to piece cache size = 0.9310 MB
print_info: arch = qwen2
print_info: vocab_only = 1
print_info: model type = ?B
print_info: model params = 494.03 M
print_info: general.name = Qwen2.5 0.5B Instruct
print_info: vocab type = BPE
print_info: n_vocab = 151936
print_info: n_merges = 151387
print_info: BOS token = 151643 '<|endoftext|>'
print_info: EOS token = 151645 '<|im_end|>'
print_info: EOT token = 151645 '<|im_end|>'
print_info: PAD token = 151643 '<|endoftext|>'
print_info: LF token = 198 'ÄŠ'
print_info: FIM PRE token = 151659 '<|fim_prefix|>'
print_info: FIM SUF token = 151661 '<|fim_suffix|>'
print_info: FIM MID token = 151660 '<|fim_middle|>'
print_info: FIM PAD token = 151662 '<|fim_pad|>'
print_info: FIM REP token = 151663 '<|repo_name|>'
print_info: FIM SEP token = 151664 '<|file_sep|>'
print_info: EOG token = 151643 '<|endoftext|>'
print_info: EOG token = 151645 '<|im_end|>'
print_info: EOG token = 151662 '<|fim_pad|>'
print_info: EOG token = 151663 '<|repo_name|>'
print_info: EOG token = 151664 '<|file_sep|>'
print_info: max token length = 256
llama_model_load: vocab only - skipping tensors
time=2025-04-22T21:04:58.219Z level=INFO source=server.go:405 msg="starting llama server" cmd="/usr/local/bin/ollama runner --model /root/.ollama/models/blobs/sha256-c5396e06af294bd101b30dce59131a76d2b773e76950acc870eda801d3ab0515 --ctx-size 8192 --batch-size 512 --threads 12 --no-mmap --parallel 4 --port 38569"
time=2025-04-22T21:04:58.219Z level=INFO source=sched.go:451 msg="loaded runners" count=1
time=2025-04-22T21:04:58.219Z level=INFO source=server.go:580 msg="waiting for llama runner to start responding"
time=2025-04-22T21:04:58.220Z level=INFO source=server.go:614 msg="waiting for server to become available" status="llm server error"
time=2025-04-22T21:04:58.241Z level=INFO source=runner.go:853 msg="starting go runner"
time=2025-04-22T21:04:58.243Z level=INFO source=ggml.go:109 msg=system CPU.0.LLAMAFILE=1 compiler=cgo(gcc)
time=2025-04-22T21:04:58.250Z level=INFO source=runner.go:913 msg="Server listening on 127.0.0.1:38569"
â ¦ llama_model_loader: loaded meta data with 34 key-value pairs and 290 tensors from /root/.ollama/models/blobs/sha256-c5396e06af294bd101b30dce59131a76d2b773e76950acc870eda801d3ab0515 (version GGUF V3 (latest))
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv 0: general.architecture str = qwen2
llama_model_loader: - kv 1: general.type str = model
llama_model_loader: - kv 2: general.name str = Qwen2.5 0.5B Instruct
llama_model_loader: - kv 3: general.finetune str = Instruct
llama_model_loader: - kv 4: general.basename str = Qwen2.5
llama_model_loader: - kv 5: general.size_label str = 0.5B
llama_model_loader: - kv 6: general.license str = apache-2.0
llama_model_loader: - kv 7: general.license.link str = https://huggingface.co/Qwen/Qwen2.5-0...
llama_model_loader: - kv 8: general.base_model.count u32 = 1
llama_model_loader: - kv 9: general.base_model.0.name str = Qwen2.5 0.5B
llama_model_loader: - kv 10: general.base_model.0.organization str = Qwen
llama_model_loader: - kv 11: general.base_model.0.repo_url str = https://huggingface.co/Qwen/Qwen2.5-0.5B
llama_model_loader: - kv 12: general.tags arr[str,2] = ["chat", "text-generation"]
llama_model_loader: - kv 13: general.languages arr[str,1] = ["en"]
llama_model_loader: - kv 14: qwen2.block_count u32 = 24
llama_model_loader: - kv 15: qwen2.context_length u32 = 32768
llama_model_loader: - kv 16: qwen2.embedding_length u32 = 896
llama_model_loader: - kv 17: qwen2.feed_forward_length u32 = 4864
llama_model_loader: - kv 18: qwen2.attention.head_count u32 = 14
llama_model_loader: - kv 19: qwen2.attention.head_count_kv u32 = 2
llama_model_loader: - kv 20: qwen2.rope.freq_base f32 = 1000000.000000
llama_model_loader: - kv 21: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001
llama_model_loader: - kv 22: general.file_type u32 = 15
llama_model_loader: - kv 23: tokenizer.ggml.model str = gpt2
llama_model_loader: - kv 24: tokenizer.ggml.pre str = qwen2
llama_model_loader: - kv 25: tokenizer.ggml.tokens arr[str,151936] = ["!", """, "#", "$", "%", "&", "'", ...
â § llama_model_loader: - kv 26: tokenizer.ggml.token_type arr[i32,151936] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
llama_model_loader: - kv 27: tokenizer.ggml.merges arr[str,151387] = ["Ä Ä ", "Ä Ä Ä Ä ", "i n", "Ä t",...
llama_model_loader: - kv 28: tokenizer.ggml.eos_token_id u32 = 151645
llama_model_loader: - kv 29: tokenizer.ggml.padding_token_id u32 = 151643
llama_model_loader: - kv 30: tokenizer.ggml.bos_token_id u32 = 151643
llama_model_loader: - kv 31: tokenizer.ggml.add_bos_token bool = false
llama_model_loader: - kv 32: tokenizer.chat_template str = {%- if tools %}n {{- '<|im_start|>...
llama_model_loader: - kv 33: general.quantization_version u32 = 2
llama_model_loader: - type f32: 121 tensors
llama_model_loader: - type q5_0: 132 tensors
llama_model_loader: - type q8_0: 13 tensors
llama_model_loader: - type q4_K: 12 tensors
llama_model_loader: - type q6_K: 12 tensors
print_info: file format = GGUF V3 (latest)
print_info: file type = Q4_K - Medium
print_info: file size = 373.71 MiB (6.35 BPW)
â ‡ time=2025-04-22T21:04:58.472Z level=INFO source=server.go:614 msg="waiting for server to become available" status="llm server loading model"
â load: special tokens cache size = 22
â ‹ load: token to piece cache size = 0.9310 MB
print_info: arch = qwen2
print_info: vocab_only = 0
print_info: n_ctx_train = 32768
print_info: n_embd = 896
print_info: n_layer = 24
print_info: n_head = 14
print_info: n_head_kv = 2
print_info: n_rot = 64
print_info: n_swa = 0
print_info: n_embd_head_k = 64
print_info: n_embd_head_v = 64
print_info: n_gqa = 7
print_info: n_embd_k_gqa = 128
print_info: n_embd_v_gqa = 128
print_info: f_norm_eps = 0.0e+00
print_info: f_norm_rms_eps = 1.0e-06
print_info: f_clamp_kqv = 0.0e+00
print_info: f_max_alibi_bias = 0.0e+00
print_info: f_logit_scale = 0.0e+00
print_info: n_ff = 4864
print_info: n_expert = 0
print_info: n_expert_used = 0
print_info: causal attn = 1
print_info: pooling type = 0
print_info: rope type = 2
print_info: rope scaling = linear
print_info: freq_base_train = 1000000.0
print_info: freq_scale_train = 1
print_info: n_ctx_orig_yarn = 32768
print_info: rope_finetuned = unknown
print_info: ssm_d_conv = 0
print_info: ssm_d_inner = 0
print_info: ssm_d_state = 0
print_info: ssm_dt_rank = 0
print_info: ssm_dt_b_c_rms = 0
print_info: model type = 1B
print_info: model params = 494.03 M
print_info: general.name = Qwen2.5 0.5B Instruct
print_info: vocab type = BPE
print_info: n_vocab = 151936
print_info: n_merges = 151387
print_info: BOS token = 151643 '<|endoftext|>'
print_info: EOS token = 151645 '<|im_end|>'
print_info: EOT token = 151645 '<|im_end|>'
print_info: PAD token = 151643 '<|endoftext|>'
print_info: LF token = 198 'ÄŠ'
print_info: FIM PRE token = 151659 '<|fim_prefix|>'
print_info: FIM SUF token = 151661 '<|fim_suffix|>'
print_info: FIM MID token = 151660 '<|fim_middle|>'
print_info: FIM PAD token = 151662 '<|fim_pad|>'
print_info: FIM REP token = 151663 '<|repo_name|>'
print_info: FIM SEP token = 151664 '<|file_sep|>'
print_info: EOG token = 151643 '<|endoftext|>'
print_info: EOG token = 151645 '<|im_end|>'
print_info: EOG token = 151662 '<|fim_pad|>'
print_info: EOG token = 151663 '<|repo_name|>'
print_info: EOG token = 151664 '<|file_sep|>'
print_info: max token length = 256
load_tensors: loading model tensors, this can take a while... (mmap = false)
load_tensors: CPU model buffer size = 373.71 MiB
â ¹ llama_init_from_model: n_seq_max = 4
llama_init_from_model: n_ctx = 8192
llama_init_from_model: n_ctx_per_seq = 2048
llama_init_from_model: n_batch = 2048
llama_init_from_model: n_ubatch = 512
llama_init_from_model: flash_attn = 0
llama_init_from_model: freq_base = 1000000.0
llama_init_from_model: freq_scale = 1
llama_init_from_model: n_ctx_per_seq (2048) < n_ctx_train (32768) -- the full capacity of the model will not be utilized
llama_kv_cache_init: kv_size = 8192, offload = 1, type_k = 'f16', type_v = 'f16', n_layer = 24, can_shift = 1
llama_kv_cache_init: CPU KV buffer size = 96.00 MiB
llama_init_from_model: KV self size = 96.00 MiB, K (f16): 48.00 MiB, V (f16): 48.00 MiB
llama_init_from_model: CPU output buffer size = 2.33 MiB
â ¸ llama_init_from_model: CPU compute buffer size = 300.25 MiB
llama_init_from_model: graph nodes = 846
llama_init_from_model: graph splits = 1
time=2025-04-22T21:04:58.973Z level=INFO source=server.go:619 msg="llama runner started in 0.75 seconds"
[GIN] 2025/04/22 - 21:04:58 | 200 | 1.319178734s | 127.0.0.1 | POST "/api/generate"
>>> Send a message (/? for help)
Checking the ollama process we can see it uses about
1589132 root 20 0 2874.7m 553.7m 21.5m S 1140 0.2 3:03.60 ollama
553.7MB of RAM
Set verbose mode when running or in console:
ollama run qwen3.5:0.8b --verbose
The --verbose gives you stats like tokens/s , execution time etc..
You can also set it within the console with:
/set verbose
total duration: 6m5.220417685s
load duration: 424.255399ms
prompt eval count: 694 token(s)
prompt eval duration: 3.385588148s
prompt eval rate: 204.99 tokens/s
eval count: 4070 token(s)
eval duration: 5m41.167479047s
eval rate: 11.93 tokens/s
Here are some of the default parameters set:
>>> /show parameters
Model defined parameters:
presence_penalty 1.5
temperature 1
top_k 20
top_p 0.95
We can set the context size to the largest the model supports eg. some models are ok for 256K context.
Remember high context uses more resources and generally reduces performance tokens/s
>>> /set parameter num_ctx 256000
Set parameter 'num_ctx' to '256000'
The default setting cuts output off pretty fast which is not desirable for coding and other long output operations.
/set parameter num_predict 4096
This is the official guide here from OpenEBS.
As of this time 2025-04, we need Kubernetes/Microk8s version 1.23 or higher (note this will continue to increment higher).
Usually a good sign of having the wrong/old version is that you will encounter namespace and other errors:
error: unknown flag: --namespace
microk8s enable helm
microk8s helm repo add openebs https://openebs.github.io/openebs
microk8s helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "openebs" chart repository
Update Complete. ⎈Happy Helming!⎈
microk8s helm install openebs --namespace openebs openebs/openebs --create-namespace
NAME: openebs
LAST DEPLOYED: Thu Apr 17 17:38:46 2025
NAMESPACE: openebs
STATUS: deployed
REVISION: 1
NOTES:
Successfully installed OpenEBS.
Check the status by running: kubectl get pods -n openebs
The default values will install both Local PV and Replicated PV. However,
the Replicated PV will require additional configuration to be fuctional.
The Local PV offers non-replicated local storage using 3 different storage
backends i.e Hostpath, LVM and ZFS, while the Replicated PV provides one replicated highly-available
storage backend i.e Mayastor.
For more information,
- view the online documentation at https://openebs.io/docs
- connect with an active community on our Kubernetes slack channel.
- Sign up to Kubernetes slack: https://slack.k8s.io
- #openebs channel: https://kubernetes.slack.com/messages/openebs
03:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS 2208 [Thunderbolt] (rev 05)
https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_6g_p14/9207_8e_Package_P14_IT_Firmware_BIOS_for_MSDOS_Windows.zip
https://docs.broadcom.com/docs/12350477
https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_6g_p20/Installer_P20_for_Linux.zip
unzip Installer_P20_for_Linux.zip
Archive: Installer_P20_for_Linux.zip
inflating: Installer_P20_for_Linux/README_Installer_P20_Linux.txt
creating: Installer_P20_for_Linux/sas2flash_linux_i686_x86-64_rel/
inflating: Installer_P20_for_Linux/sas2flash_linux_i686_x86-64_rel/sas2flash
creating: Installer_P20_for_Linux/sas2flash_linux_ppc64_rel/
inflating: Installer_P20_for_Linux/sas2flash_linux_ppc64_rel/sas2flash
inflating: Installer_P20_for_Linux/SAS2FLASH_Phase20.0-20.00.00.00.pdf
inflating: Installer_P20_for_Linux/SAS2Flash_ReferenceGuide.pdf
chmod +x Installer_P20_for_Linux/sas2flash_linux_i686_x86-64_rel/sas2flash
Installer_P20_for_Linux/sas2flash_linux_i686_x86-64_rel/sas2flash -list -c 0
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18)
Copyright (c) 2008-2014 LSI Corporation. All rights reserved
No LSI SAS adapters found! Limited Command Set Available!
ERROR: Command Not allowed without an adapter!
ERROR: Couldn't Create Command -list
Exiting Program.
P14 sas2flash won't run on Ubuntu 20 or similar/newer:
sas2flash: sas2flash: cannot execute binary file
Usually when I come across a system like this, I just flash the firmware to an IT mode so we get just an AHCI system with JBOD, but sometimes it is not practical for remote systems or if we fear that flashing is too risky if something goes wrong.
In this case, we unfortunately have to use LSI/Broadcom proprietary CLI tools (megacli) to even make the drives visible.
The official broadcom packages lack .deb packages and only have .rpm for Linux
At this time the latest MegaCLI 5.5 P2 can be downloaded from here.
unzip 8-07-14_MegaCLI.zip
Archive: 8-07-14_MegaCLI.zip
inflating: 8.07.14_MegaCLI.txt
inflating: DOS/MegaCLI.exe
extracting: FreeBSD/MegaCLI.zip
extracting: FreeBSD/MegaCli64.zip
inflating: Linux/MegaCli-8.07.14-1.noarch.rpm
inflating: Solaris/MegaCli.pkg
inflating: Windows/MegaCli.exe
inflating: Windows/MegaCli64.exe
apt install libncurses5 alien
alien MegaCli-8.07.06-1.noarch.rpm
Warning: Skipping conversion of scripts in package MegaCli: postinst postrm
Warning: Use the --scripts parameter to include the scripts.
megacli_8.07.06-2_all.deb generated
dpkg -i megacli_8.07.06-2_all.deb
Selecting previously unselected package megacli.
(Reading database ... 295031 files and directories currently installed.)
Preparing to unpack megacli_8.07.06-2_all.deb ...
Unpacking megacli (8.07.06-2) ...
Setting up megacli (8.07.06-2) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
/opt/MegaRAID/MegaCli/MegaCli64: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
If you get the above: apt install libncurses5
root@mint:~/Linux# /opt/MegaRAID/MegaCli/MegaCli64 -h
MegaCLI SAS RAID Management Tool Ver 8.07.06 Nov 13, 2012
(c)Copyright 2011, LSI Corporation, All Rights Reserved.
NOTE: The following options may be given at the end of any command below:
[-Silent] [-AppLogFile filename] [-NoLog] [-page[N]]
[-] is optional.
N - Number of lines per page.
MegaCli -v
MegaCli -help|-h|?
MegaCli -adpCount
MegaCli -AdpSetProp {CacheFlushInterval -val} | { RebuildRate -val}
| {PatrolReadRate -val} | {BgiRate -val} | {CCRate -val} | {ForceSGPIO -val}
| {ReconRate -val} | {SpinupDriveCount -val} | {SpinupDelay -val}
| {CoercionMode -val} | {ClusterEnable -val} | {PredFailPollInterval -val}
| {BatWarnDsbl -val} | {EccBucketSize -val} | {EccBucketLeakRate -val}
| {AbortCCOnError -val} | AlarmEnbl | AlarmDsbl | AlarmSilence
| {SMARTCpyBkEnbl -val} | {SSDSMARTCpyBkEnbl -val} | NCQEnbl | NCQDsbl
| {MaintainPdFailHistoryEnbl -val} | {RstrHotSpareOnInsert -val}
| {DisableOCR -val} | {BootWithPinnedCache -val} | {enblPI -val} |{PreventPIImport -val}
| AutoEnhancedImportEnbl | AutoEnhancedImportDsbl
| {EnblSpinDownUnConfigDrvs -val}|{UseDiskActivityforLocate -val} -aN|-a0,1,2|-aALL
| {ExposeEnclDevicesEnbl -val} | {SpinDownTime -val}
| {SpinUpEncDrvCnt -val} | {SpinUpEncDelay -val} | {Perfmode -val} -aN|-a0,1,2|-aALL
| {PerfMode -val �MaxFlushLines -val �MaxPDLatencyMS -val} -aN|-a0,1,2|-aALL
MegaCli -AdpSetProp -AutoDetectBackPlaneDsbl -val -aN|-a0,1,2|-aALL
val - 0=Enable Auto Detect of SGPIO and i2c SEP.
1=Disable Auto Detect of SGPIO.
2=Disable Auto Detect of i2c SEP.
3=Disable Auto Detect of SGPIO and i2c SEP.
MegaCli -AdpSetProp -CopyBackDsbl -val -aN|-a0,1,2|-aALL
val - 0=Enable Copyback.
1=Disable Copyback.
MegaCli -AdpSetProp -EnableJBOD -val -aN|-a0,1,2|-aALL
val - 0=Disable JBOD mode.
1=Enable JBOD mode.
MegaCli -AdpSetProp -DsblCacheBypass -val -aN|-a0,1,2|-aALL
val - 0=Enable Cache Bypass.
1=Disable Cache Bypass.
MegaCli -AdpSetProp -LoadBalanceMode -val -aN|-a0,1,2|-aALL
val - 0=Auto Load balance mode.
1=Disable Load balance mode.
MegaCli -AdpSetProp -UseFDEOnlyEncrypt -val -aN|-a0,1,2|-aALL
val - 0=FDE and controller encryption (if HW supports) is allowed.
1=Only support FDE encryption, disallow controller encryption.
MegaCli -AdpSetProp -PrCorrectUncfgdAreas -val -aN|-a0,1,2|-aALL
val - 0= Correcting Media error during PR is disabled.
1=Correcting Media error during PR is allowed.
MegaCli -AdpSetProp -DsblSpinDownHSP -val -aN|-a0,1,2|-aALL
val - 0= Spinning down the Hot Spare is enabled.
1=Spinning down the Hot Spare is disabled.
MegaCli -AdpSetProp -DefaultLdPSPolicy -Automatic| -None | -Maximum| -MaximumWithoutCaching -aN|-a0,1,2|-aALL
MegaCli -AdpSetProp -DisableLdPS -interval n1 -time n2 -aN|-a0,1,2|-aALL
where n1 is the number of hours beginning at time n2
where n2 is the number of minutes from 12:00am
MegaCli -AdpSetProp -ENABLEEGHSP -val -aN|-a0,1,2|-aALL
val - 0= Disabled Emergency GHSP.
1= Enabled Emergency GHSP.
MegaCli -AdpSetProp -ENABLEEUG -val -aN|-a0,1,2|-aALL
val - 0= Disabled Emergency UG as Spare.
1= Enabled Emergency UG as Spare.
MegaCli -AdpSetProp -ENABLEESMARTER -val -aN|-a0,1,2|-aALL
val - 0= Disabled Emergency Spare as Smarter.
1= Enabled Emergency Spare as Smarter.
MegaCli -AdpSetProp -DPMenable -val -aN|-a0,1,2|-aALL
val - 0=Disable Drive Performance Monitoring .
1=Enable Drive Performance Monitoring.
MegaCli -AdpSetProp -SupportSSDPatrolRead -val -aN|-a0,1,2|-aALL
val - 0=Disable Patrol read for SSD drives .
1=Enable Patrol read for SSD drives.
MegaCli -AdpGetProp CacheFlushInterval | RebuildRate | PatrolReadRate | ForceSGPIO
| BgiRate | CCRate | ReconRate | SpinupDriveCount | SpinupDelay
| CoercionMode | ClusterEnable | PredFailPollInterval | BatWarnDsbl
| EccBucketSize | EccBucketLeakRate | EccBucketCount | AbortCCOnError
| AlarmDsply | SMARTCpyBkEnbl | SSDSMARTCpyBkEnbl | NCQDsply
| MaintainPdFailHistoryEnbl | RstrHotSpareOnInsert
| EnblSpinDownUnConfigDrvs | DisableOCR
| BootWithPinnedCache | enblPI |PreventPIImport | AutoEnhancedImportDsply | AutoDetectBackPlaneDsbl
| CopyBackDsbl | LoadBalanceMode | UseFDEOnlyEncrypt | WBSupport | EnableJBOD
| DsblCacheBypass | ExposeEnclDevicesEnbl | SpinDownTime | PrCorrectUncfgdAreas
| UseDiskActivityforLocate | ENABLEEGHSP | ENABLEEUG | ENABLEESMARTER | Perfmode | PerfModeValues
| -DPMenable -aN|-a0,1,2|-aALL
| DefaultLdPSPolicy | DisableLdPsInterval | DisableLdPsTime | SpinUpEncDrvCnt
| SpinUpEncDelay | PrCorrectUncfgdAreas
| DsblSpinDownHSP | SupportSSDPatrolRead -aN|-a0,1,2|-aALL
MegaCli -AdpAllInfo -aN|-a0,1,2|-aALL
MegaCli -AdpGetTime -aN|-a0,1,2|-aALL
MegaCli -AdpSetTime yyyymmdd hh:mm:ss -aN
MegaCli -AdpSetVerify -f fileName -aN|-a0,1,2|-aALL
MegaCli -AdpBIOS -Enbl |-Dsbl | -SOE | -BE | -HCOE | - HSM | EnblAutoSelectBootLd | DsblAutoSelectBootLd | -Dsply -aN|-a0,1,2|-aALL
MegaCli -AdpBootDrive {-Set {-Lx | -physdrv[E0:S0]}} | {-Unset {-Lx | -physdrv[E0:S0]}} |-Get -aN|-a0,1,2|-aALL
MegaCli -AdpAutoRbld -Enbl|-Dsbl|-Dsply -aN|-a0,1,2|-aALL
MegaCli -AdpCacheFlush -aN|-a0,1,2|-aALL
MegaCli -AdpPR -Dsbl|EnblAuto|EnblMan|Start|Suspend|Resume|Stop|Info|SSDPatrolReadEnbl |SSDPatrolReadDsbl
|{SetDelay Val}|{-SetStartTime yyyymmdd hh}|{maxConcurrentPD Val} -aN|-a0,1,2|-aALL
MegaCli -AdpCcSched -Dsbl|-Info|{-ModeConc | -ModeSeq [-ExcludeLD -LN|-L0,1,2]
[-SetStartTime yyyymmdd hh ] [-SetDelay val ] } -aN|-a0,1,2|-aALL
MegaCli -AdpCcSched -SetStartTime yyyymmdd hh -aN|-a0,1,2|-aALL
MegaCli -AdpCcSched -SetDelay val -aN|-a0,1,2|-aALL
MegaCli -FwTermLog -BBUoff|BBUoffTemp|BBUon|BBUGet|Dsply|Clear -aN|-a0,1,2|-aALL
MegaCli -AdpAlILog -aN|-a0,1,2|-aALL
MegaCli -AdpDiag [val] -aN|-a0,1,2|-aALL
val - Time in second.
MegaCli -AdpGetPciInfo -aN|-a0,1,2|-aALL
MegaCli -AdpShutDown -aN|-a0,1,2|-aALL
MegaCli -AdpDowngrade -aN|-a0,1,2|-aALL
MegaCli -PDList -aN|-a0,1,2|-aALL
MegaCli -PDGetNum -aN|-a0,1,2|-aALL
MegaCli -pdInfo -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PDOnline -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PDOffline -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PDMakeGood -PhysDrv[E0:S0,E1:S1,...] | [-Force] -aN|-a0,1,2|-aALL
MegaCli -PDMakeJBOD -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PDHSP {-Set [-Dedicated [-ArrayN|-Array0,1,2...]] [-EnclAffinity] [-nonRevertible]}
|-Rmv -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PDRbld -Start|-Stop|-Suspend|-Resume|-ShowProg |-ProgDsply
-PhysDrv [E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PDClear -Start|-Stop|-ShowProg |-ProgDsply
-PhysDrv [E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PdLocate {[-start] | -stop} -physdrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PdMarkMissing -physdrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
MegaCli -PdGetMissing -aN|-a0,1,2|-aALL
MegaCli -PdReplaceMissing -physdrv[E0:S0] -arrayA, -rowB -aN
MegaCli -PdPrpRmv [-UnDo] -physdrv[E0:S0] -aN|-a0,1,2|-aALL
MegaCli -EncInfo -aN|-a0,1,2|-aALL
MegaCli -EncStatus -aN|-a0,1,2|-aALL
MegaCli -PhyInfo -phyM -aN|-a0,1,2|-aALL
MegaCli -PhySetLinkSpeed -phyM -speed -aN|-a0,1,2|-aALL
MegaCli -PdFwDownload [offline][ForceActivate] {[-SataBridge] -PhysDrv[0:1] }|{-EncdevId[devId1]} -f
MegaCli -LDInfo -Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL
MegaCli -LDSetProp {-Name LdNamestring} | -RW|RO|Blocked|RemoveBlocked | WT|WB|ForcedWB [-Immediate] |RA|NORA|ADRA | DsblPI
| Cached|Direct | -EnDskCache|DisDskCache | CachedBadBBU|NoCachedBadBBU
-Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL
MegaCli -LDSetPowerPolicy -Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching
-Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL
MegaCli -LDGetProp -Cache | -Access | -Name | -DskCache | -PSPolicy | Consistency -Lx|-L0,1,2|-LALL
-aN|-a0,1,2|-aALL
MegaCli -LDInit {-Start [-full]}|-Abort|-ShowProg|-ProgDsply -Lx|-L0,1,2|-LALL -aN|-a0,1,2|-aALL
MegaCli -LDCC {-Start [-force]}|-Abort|-Suspend|-Resume|-ShowProg|-ProgDsply -Lx|-L0,1,2|-LALL -aN|-a0,1,2|-aALL
MegaCli -LDBI -Enbl|-Dsbl|-getSetting|-Abort|-Suspend|-Resume|-ShowProg|-ProgDsply -Lx|-L0,1,2|-LALL -aN|-a0,1,2|-aALL
MegaCli -LDRecon {-Start -rX [{-Add | -Rmv} -Physdrv[E0:S0,...]]}|-ShowProg|-ProgDsply
-Lx -aN
MegaCli -LdPdInfo -aN|-a0,1,2|-aALL
MegaCli -LDGetNum -aN|-a0,1,2|-aALL
MegaCli -LDBBMClr -Lx|-L0,1,2,...|-Lall -aN|-a0,1,2|-aALL
MegaCli -getLdExpansionInfo -Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL
MegaCli -LdExpansion -pN -dontExpandArray -Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL
MegaCli -GetBbtEntries -Lx|-L0,1,2|-Lall -aN|-a0,1,2|-aALL
MegaCli -Cachecade -assign|-remove -Lx|-L0,1,2|-LALL -aN|-a0,1,2|-aALL
MegaCli -CfgLdAdd -rX[E0:S0,E1:S1,...] [WT|WB] [NORA|RA|ADRA] [Direct|Cached]
[CachedBadBBU|NoCachedBadBBU] [-szXXX [-szYYY ...]]
[-strpszM] [-Hsp[E0:S0,...]] [-AfterLdX] | [Secure]
[-Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching] [-Cache] [-enblPI] [-Force]-aN
MegaCli -CfgCacheCadeAdd [-rX] -Physdrv[E0:S0,...] {-Name LdNamestring} [WT|WB|ForcedWB] [-assign -LX|L0,2,5..|LALL] -aN|-a0,1,2|-aALL
MegaCli -CfgEachDskRaid0 [WT|WB] [NORA|RA|ADRA] [Direct|Cached] [-enblPI]
[CachedBadBBU|NoCachedBadBBU] [-strpszM]|[Secure] [-Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching] [-Cache] -aN|-a0,1,2|-aALL
MegaCli -CfgClr [-Force] -aN|-a0,1,2|-aALL
MegaCli -CfgDsply -aN|-a0,1,2|-aALL
MegaCli -CfgCacheCadeDsply -aN|-a0,1,2|-aALL
MegaCli -CfgLdDel -LX|-L0,2,5...|-LALL [-Force] -aN|-a0,1,2|-aALL
MegaCli -CfgCacheCadeDel -LX|-L0,2,5...|-LALL -aN|-a0,1,2|-aALL
MegaCli -CfgFreeSpaceinfo -aN|-a0,1,2|-aALL
MegaCli -CfgSpanAdd -r10 -Array0[E0:S0,E1:S1] -Array1[E0:S0,E1:S1] [-ArrayX[E0:S0,E1:S1] ...]
[WT|WB] [NORA|RA|ADRA] [Direct|Cached] [CachedBadBBU|NoCachedBadBBU]
[-szXXX[-szYYY ...]][-strpszM][-AfterLdX]| [Secure]
[-Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching] [-Cache] [-enblPI] [-Force] -aN
MegaCli -CfgSpanAdd -r50 -Array0[E0:S0,E1:S1,E2:S2,...] -Array1[E0:S0,E1:S1,E2:S2,...]
[-ArrayX[E0:S0,E1:S1,E2:S2,...] ...] [WT|WB] [NORA|RA|ADRA] [Direct|Cached]
[CachedBadBBU|NoCachedBadBBU][-szXXX[-szYYY ...]][-strpszM][-AfterLdX]
[Secure] [-Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching] [-Cache] [-enblPI] [-Force] -aN
MegaCli -CfgSpanAdd -r60 -Array0[E0:S0,E1:S1,E2:S2,E3,S3...] -Array1[E0:S0,E1:S1,E2:S2,E3,S3...]
[-ArrayX[E0:S0,E1:S1,E2:S2,E3,S3...] ...] [WT|WB] [NORA|RA|ADRA] [Direct|Cached]
[CachedBadBBU|NoCachedBadBBU][-szXXX[-szYYY ...]][-strpszM][-AfterLdX]|
[Secure] [-Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching] [-Cache] [-enblPI] [-Force]-aN
MegaCli -CfgAllFreeDrv -rX [-SATAOnly] [-SpanCount XXX] [WT|WB] [NORA|RA|ADRA]
[Direct|Cached] [CachedBadBBU|NoCachedBadBBU] [-strpszM]
[-HspCount XX [-HspType -Dedicated|-EnclAffinity|-nonRevertible]]|
[Secure] [-Default| -Automatic| -None| -Maximum| -MaximumWithoutCaching] [-Cache] [-enblPI] -aN
MegaCli -CfgSave -f filename -aN
MegaCli -CfgRestore -f filename -aN
MegaCli -CfgForeign -Scan | [-Passphrase sssssssssss] -aN|-a0,1,2|-aALL
MegaCli -CfgForeign -Dsply [x] | [-Passphrase sssssssssss] -aN|-a0,1,2|-aALL
MegaCli -CfgForeign -Preview [x] | [-Passphrase sssssssssss] -aN|-a0,1,2|-aALL
MegaCli -CfgForeign -Import [x] | [-Passphrase sssssssssss] -aN|-a0,1,2|-aALL
MegaCli -CfgForeign -Clear [x]|[-Passphrase sssssssssss] -aN|-a0,1,2|-aALL
x - index of foreign configurations. Optional. All by default.
MegaCli -AdpEventLog -GetEventLogInfo -aN|-a0,1,2|-aALL
MegaCli -AdpEventLog -GetEvents {-info -warning -critical -fatal} {-f
MegaCli -AdpEventLog -GetSinceShutdown {-info -warning -critical -fatal} {-f
MegaCli -AdpEventLog -GetSinceReboot {-info -warning -critical -fatal} {-f
MegaCli -AdpEventLog -IncludeDeleted {-info -warning -critical -fatal} {-f
MegaCli -AdpEventLog -GetLatest n {-info -warning -critical -fatal} {-f
MegaCli -AdpEventLog -GetCCIncon -f
MegaCli -AdpEventLog -Clear -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -GetBbuStatus -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -GetBbuCapacityInfo -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -GetBbuDesignInfo -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -GetBbuProperties -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -BbuLearn -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -BbuMfgSleep -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -BbuMfgSeal -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -getBbumodes -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -SetBbuProperties -f
MegaCli -AdpBbuCmd -GetGGEEPData offset [Hexaddress] NumBytes n -aN|-a0,1,2|-aALL
MegaCli -AdpBbuCmd -ScheduleLearn -Dsbl|-Info|[-STARTTIME DDD hh] -aN|-a0,1,2|-aALL
MegaCli -AdpFacDefSet -aN
MegaCli -AdpFwFlash -f filename [-ResetNow] [-NoSigChk] [-NoVerChk] [-FWTYPE n] -aN|-a0,1,2|-aALL
MegaCli -AdpGetConnectorMode -ConnectorN|-Connector0,1|-ConnectorAll -aN|-a0,1,2|-aALL
MegaCli -AdpSetConnectorMode -Internal|-External|-Auto -ConnectorN|-Connector0,1|-ConnectorAll -aN|-a0,1,2|-aALL
MegaCli -PhyErrorCounters -aN|-a0,1,2|-aALL
MegaCli -DirectPdMapping -Enbl|-Dsbl|-Dsply -aN|-a0,1,2|-aALL
MegaCli -PDCpyBk -Start -PhysDrv[E0:S0,E1:S1] -aN|-a0,1,2|-aALL
MegaCli -PDCpyBk -Stop|-Suspend|-Resume|-ShowProg|-ProgDsply -PhysDrv[E0:S0] -aN|-a0,1,2|-aALL
MegaCli -PDInstantSecureErase -PhysDrv[E0:S0,E1:S1,...] | [-Force] -aN|-a0,1,2|-aALL
MegaCli -CfgSpanAdd -rX -array0[E0:S1,E1:S1.....] array1[E0:S1,E1:S1.....] -szxxx -enblPI -aN|-a0,1,2|-aALL
MegaCli -LDMakeSecure -Lx|-L0,1,2,...|-Lall -aN|-a0,1,2|-aALL
MegaCli -DeleteSecurityKey | [-Force] -aN
MegaCli -CreateSecurityKey -Passphrase sssssssssss [-KeyID kkkkkkkkkkk] -aN
MegaCli -CreateSecurityKey useEKMS -aN
MegaCli -ChangeSecurityKey -OldPassphrase sssssssssss | -Passphrase sssssssssss |
[-KeyID kkkkkkkkkkk] -aN
MegaCli -ChangeSecurityKey -Passphrase sssssssssss |
[-KeyID kkkkkkkkkkk] -aN
MegaCli -ChangeSecurityKey useEKMS -oldPassphrase sssssssssss -aN
MegaCli -ChangeSecurityKey -useEKMS -aN
MegaCli -GetKeyID [-PhysDrv[E0:S0]] -aN
MegaCli -SetKeyID -KeyID kkkkkkkkkkk -aN
MegaCli -VerifySecurityKey -Passphrase sssssssssss -aN
MegaCli -GetPreservedCacheList -aN|-a0,1,2|-aALL
MegaCli -DiscardPreservedCache -Lx|-L0,1,2|-Lall -force -aN|-a0,1,2|-aALL
sssssssssss - It must be between eight and thirty-two
characters and contain at least one number,
one lowercase letter, one uppercase
letter and one non-alphanumeric character.
kkkkkkkkkkk - Must be less than 256 characters.
MegaCli -ShowSummary [-f filename] -aN
MegaCli -ELF -GetSafeId -aN|-a0,1,2|-aALL
MegaCli -ELF -ControllerFeatures -aN|-a0,1,2|-aALL
MegaCli -ELF -Applykey key
MegaCli -ELF -TransferToVault -aN|-a0,1,2|-aALL
MegaCli -ELF -DeactivateTrialKey -aN|-a0,1,2|-aALL
MegaCli -ELF -ReHostInfo -aN|-a0,1,2|-aALL
MegaCli -ELF -ReHostComplete -aN|-a0,1,2|-aALL
MegaCli -LDViewMirror -Lx|-L0,1,2,...|-Lall -aN|-a0,1,2|-aALL
MegaCli -LDJoinMirror -DataSrc
MegaCli -SecureErase
Start[
Simple|
[Normal [ |ErasePattern ErasePatternA|ErasePattern ErasePatternA ErasePattern ErasePatternB]]|
[Thorough [ |ErasePattern ErasePatternA|ErasePattern ErasePatternA ErasePattern ErasePatternB]]]
| Stop
| ShowProg
| ProgDsply
[-PhysDrv [E0:S0,E1:S1,...] | -Lx|-L0,1,2|-LALL] -aN|-a0,1,2|-aALL
MegaCli -Version -Cli|-Ctrl|-Driver|-Pd -aN|-a0,1,2|-aALL
MegaCli -Perfmon {-start -interval
MegaCli -DpmStat -Dsply {lct | hist | ra | ext } [-physdrv[E0:S0]] -aN|-a0,1,2|-aALL
MegaCli -DpmStat -Clear {lct | hist | ra | ext } -aN|-a0,1,2|-aALL
Note: The directly connected drives can be specified as [:S]
Wildcard '?' can be used to specify the enclosure ID for the drive in the
only enclosure without direct connected device or the direct connected
drives with no enclosure in the system.
Note:[-aALL] option assumes that the parameters specified are valid
for all the Adapters.
Note:ProgDsply option is not supported in VMWARE-COSLESS.
The following options may be given at the end of any command above:
[-Silent] [-AppLogFile filename] [-NoLog] [-page[N]]
[-] is optional.
N - Number of lines per page.
MegaCli XD -AddVd
MegaCli XD -RemVd
MegaCli XD -AddCdev
MegaCli XD -RemCdev
MegaCli XD -VdList | -Configured | -Unconfigured
MegaCli XD -CdevList | -Configured | -Unconfigured
MegaCli XD -ConfigInfo
MegaCli XD -PerfStats
MegaCli XD -OnlineVd
MegaCli XD -WarpDriveInfo -iN | -iALL
MegaCli XD -FetchSafeId -iN | -iALL
MegaCli XD -ApplyActivationKey
Exit Code: 0x00
This command lists all of the physical drives on adapter 0 or (-a0).
/opt/MegaRAID/MegaCli/MegaCli64 -pdlist -a0
| Useful Items | |
| Slot Number: | the physical slot the drive is on the server |
| Raw Size: | the size of the disk in GB |
Notable things
Slot Number:
Notice it will list the slot# so you know the physical position of the drive in the server.
Adapter #0
Enclosure Device ID: 32
Slot Number: 1
Enclosure position: 1
Device Id: 1
WWN: 5000C5003A260844
Sequence Number: 1
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS
Raw Size: 279.396 GB [0x22ecb25c Sectors]
Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
Coerced Size: 278.875 GB [0x22dc0000 Sectors]
Sector Size: 0
Firmware state: Unconfigured(good), Spun Up
Device Firmware Level: FS64
Shield Counter: 0
Successful diagnostics completion on : N/A
SAS Address(0): 0x5000c5003a260845
SAS Address(1): 0x0
Connected Port Number: 1(path0)
Inquiry Data: SEAGATE ST9300603SS FS646SE3T176
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Hard Disk Device
Drive Temperature :28C (82.40 F)
PI Eligibility: No
Drive is formatted for PI information: No
PI: No PI
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s
Port-1 :
Port status: Active
Port's Linkspeed: Unknown
Drive has flagged a S.M.A.R.T alert : No
First we need the slots of our drives, in this exampe on this server I only had 4 drives and knew I wanted each of them, so doing a grep on slot was fine to use any that came out.
Get Slot Numbers of Drives
MegaCli64 -PDList -aALL|grep -i slot
Slot Number: 1
Slot Number: 3
Slot Number: 5
Slot Number: 7
Use the slot numbers from above later on in our array creation.
Get "Enclosure Device ID":
MegaCli64 -PDList -aALL|grep -i enclosure
Enclosure Device ID: 32
Enclosure position: 1
Enclosure Device ID: 32
Enclosure position: 1
Enclosure Device ID: 32
Enclosure position: 1
Enclosure Device ID: 32
Enclosure position: 1
In our case we can see the enclosure ID is 32
Create RAID 10 Array
CfgSpanAdd command which is required for a RAID 10 array.
r10 specifies it as RAID 10
Array is required as RAID 10 in theory is 2 RAID 1's combined into a RAID 0.
Note that in the brackets the 32:1 is based on the fact from above that our enclosure ID is "32" and the 1 is one of our slot numbers of a disk we want to use. Be sure to adjust according
MegaCli64 -CfgSpanAdd -r10 -Array0[32:1,32:3] -Array1[32:5,32:7] -a0
Adapter 0: Created VD 0
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
Success in RAID 10
You will now see that you have a new device that automatically appears as the next available drive letter.
Disk /dev/sdc: 557.77 GiB, 598879502336 bytes, 1169686528 sectors
Disk model: PERC H710P
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
MegaCli64 -CfgLdAdd -r0[32:5] -a0
The above creates a RAID 0 array out of a single drive located in enclosure 32 and slot#5 on adapter 0.
This is the way if you want simpler and better performance by using mdadm to create your own array.
Of course you could have specified multiple drives if you truly wanted a fast but totally unreliable RAID 0 multi disk array (eg. -r0[32:5,32:4]
Check array/rebuild state:
./MegaCli64 -LDInfo -LALL -aALL
Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name :
RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0
Size : 557.75 GB
Sector Size : 512
Mirror Data : 557.75 GB
State : Optimal
Strip Size : 64 KB
Number Of Drives per span:2
Span Depth : 2
Default Cache Policy: WriteBack, ReadAdaptive, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAdaptive, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy : Disk's Default
Ongoing Progresses:
Background Initialization: Completed 24%, Taken 10 min.
Encryption Type : None
Default Power Savings Policy: Controller Defined
Current Power Savings Policy: None
Can spin up in 1 minute: Yes
LD has drives that support T10 power conditions: Yes
LD's IO profile supports MAX power savings with cached writes: No
Bad Blocks Exist: No
Is VD Cached: Yes
Cache Cade Type : Read Only
If you don't want to use the entire RAID function and want to use mdadm, you can create a fake RAID 0 of each drive to expose it as a sort of normal drive and then make a RAID out of that for use with mdadm. mdadm usually gives better performance, especially in RAID 10.
For example using an old 4 disk RAID 10 array with MegaRAID it produces only 249MB/s:
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 21.0175 s, 249 MB/s
Now compare the same 4 disks with mdadm RAID 10 with virtual raid 0 drives
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 16.2648 s, 322 MB/s
Note that this test was done while the array was still initializing too!
Look at how much faster the fully sync'd mdadm RAID 10 is (nearly 2x faster than the MegaRAID 10):
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 10.412 s, 504 MB/s
Create each PD/physical drive using the enlosure ID and slot ID [32:1] for example.
MegaCli64 CfgLdAdd -r0 [32:1] -a0
Adapter 0: Created VD 0
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
MegaCli64 CfgLdAdd -r0 [32:3] -a0
Adapter 0: Created VD 1
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
MegaCli64 CfgLdAdd -r0 [32:5] -a0
Adapter 0: Created VD 2
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
MegaCli64 CfgLdAdd -r0 [32:7] -a0
Adapter 0: Created VD 3
Adapter 0: Configured the Adapter!!
After this just do the normal mdadm config on each disk (in my case the above created a /dev/sdc sdd sde sdf).
For example above we created the Virtual Drive with ID "0"
Virtual Drive: 0 (Target Id: 0)
./MegaCli64 CfgLdDel -L0 -Force -a0
The 0 in -L0 means logical drive 0 from above. Change to match your ID.
If you don't use -Force before -a0 you get this error: Virtual Disk is associate with Cache Cade. Please Use force option to delete
Adapter 0: Deleted Virtual Drive-0(target id-0)
One other irritating thing about tools like megaraid is that smart doesn't work as you expect. Take a virtual drive /dev/sdc it doesn't show anything useful.
With smartctl you can use the megaraid option/plugin and specify the drive#/slot# and get normal info like this:
Note below the magic is in -d megaraid,3 which says we want the megaraid drive#3 or slot#3 smart info, which then gives us the normal expected info.
smartctl -a /dev/sdc -d megaraid,3 -T permissive
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-26-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: IBM-ESXS
Product: ST9300603SS F
Revision: B53A
Compliance: SPC-3
User Capacity: 300,000,000,000 bytes [300 GB]
Logical block size: 512 bytes
Rotation Rate: 10000 rpm
Form Factor: 2.5 inches
Logical Unit id: 0x5000c5001dbdea07
Serial number: 3SE1MFK400009035N4B3
Device type: disk
Transport protocol: SAS (SPL-3)
Local Time is: Mon Mar 24 20:16:16 2025 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Temperature Warning: Enabled
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Current Drive Temperature: 0 C
Drive Trip Temperature: 0 C
Elements in grown defect list: 0
Error Counter logging not supported
Device does not support Self Test logging
Convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/413.
convert-im6.q16: no images defined `pts-time.jpg' @ error/convert.c/ConvertImageCommand/3258.
Find the "PDF" pattern and set it like below:
<policy domain="coder" rights="read|write" pattern="PDF" />
By default the rights are none (rights="none") which is why you get that error.
We've had clients asking why their CDN is not working, it is often a PHP setting that causes the below header to be sent:
expires: Thu, 19 Nov 1981 08:52:00 GMT
Set the option below as just being empty. Generally the default is nocache and will result in sending the expires header from 1981.
session.cache_limiter =
Here is what the man says about the option:
; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
; http://php.net/session.cache-limiter
However, we have often seen that any option but being empty results in the expires header being sent. If you want your content to be cachable by CDN, then make sure the session.cache_limiter contains a NULL/empty value.
sudo apt install virt-manager
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
Your user needs access to libvirt and kvm or it won't work without running as sudo.
sudo usermod -a -G kvm yourusername
sudo usermond -a -G libvirt yourusername
If you get errors relating to being unable to connect to QEMU or not active connection, it is probably a permissions issue.

if you get errors with being unable to connect to libvirtd, it is probably not started.
A practical guide for admins who need to plan the required amount of bandwidth and what connectors/cards are needed for which.
| Standard | Speed | Cable/Connector |
| SDR | 8G | SFP |
| DDR | 10/16G | SFP, QSFP |
| QDR | 40/32G | QSFP |
| FDR | 56G | QSFP |
| EDR | 100G | QSP28 |
| HDR | 200G | QSP56 |
| NDR | 400G | QSFP-DD |
| XDR | 800G | OSFP, QSFP-DD |
If using mariadb install this:
apt-get install libmariadbclient-dev
If using mysql install this:
apt-get install libmysqlclient-dev
pip3 install mysql
The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting mysql
Downloading https://files.pythonhosted.org/packages/9a/52/8d29c58f6ae448a72fbc612955bd31accb930ca479a7ba7197f4ae4edec2/mysql-0.0.3-py3-none-any.whl
Collecting mysqlclient (from mysql)
Downloading https://files.pythonhosted.org/packages/50/5f/eac919b88b9df39bbe4a855f136d58f80d191cfea34a3dcf96bf5d8ace0a/mysqlclient-2.1.1.tar.gz (88kB)
100% |████████████████████████████████| 92kB 5.5MB/s
Complete output from command python setup.py egg_info:
/bin/sh: 1: mysql_config: not found
/bin/sh: 1: mariadb_config: not found
/bin/sh: 1: mysql_config: not found
mysql_config --version
mariadb_config --version
mysql_config --libs
Traceback (most recent call last):
File "
File "/tmp/pip-install-twfzngc5/mysqlclient/setup.py", line 15, in
metadata, options = get_config()
File "/tmp/pip-install-twfzngc5/mysqlclient/setup_posix.py", line 70, in get_config
libs = mysql_config("libs")
File "/tmp/pip-install-twfzngc5/mysqlclient/setup_posix.py", line 31, in mysql_config
raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-twfzngc5/mysqlclient/









Generally most containers are by default set not to start automatically.
Ther eare 3 settings for the "RestartPolicy" of containers:
no: Do not automatically restart the container (default).
always: Always restart the container regardless of the exit status.
unless-stopped: Always restart the container unless it is explicitly stopped.
on-failure: Restart the container only if it exits with a non-zero status
Here is how you can see the policy:
docker ps -aq | xargs -I {} docker inspect --format='{{.Name}}: {{.HostConfig.RestartPolicy.Name}}' {}
We can see the output of all containers on the node and in the case below we see that all 3 are set to "no".
/festive_wiles: no
/magical_goldberg: no
/angry_hamilton: no
Say if we wanted "festive_wiles" to always be running (eg. if the server/node is rebooted we want the container to startup automatically):
docker update --restart=always festive_wiles
We just specify --restart=
docker run --name YourContainerName --restart=always -d nginx
Click Connectivity -> Extensions

Click on "Quick Create Extension" or "Add Extension".
Quick is fine for more users, unless you have more specific requirements.



If you use Quick Create, you can just edit the extension and click on their "secret" field to find the password.
To make your SIP softphone or real register use the following info:
SIP Server: Your IP/Domain of FreePBX
Username: Extension# (eg 1234)
Password: the secret

Disk /dev/sdb: 15.22 GiB, 16336814080 bytes, 31907840 sectors
Disk model: SD/MMC
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes.
wipefs is a useful tool to show us what filesystems exist on the drive.
root@mint:/home/mint# wipefs /dev/sdb
DEVICE OFFSET TYPE UUID LABEL
sdb 0x52 vfat 53E2-5BC6
sdb 0x0 vfat 53E2-5BC6
sdb 0x1fe vfat 53E2-5BC6
Make sure you have backed up any data.
Change sdX below with the actual drive you want to do this to.
wipefs --all /dev/sdX
Most relevant config points from my video here.

The most important part is setting the "Digest Credentials", that is the password that the phone will use to authenticate.

Device -> Phone

Set a fake MAC address in the right format eg. AAABBBCCCDDD.
Remember to assign the phone to the user you created earlier.

Set the "Third-party SIP Device Basic - Standard SIP" security profile as below.

Scroll down and set the Digest user to the user we sent earlier.

Remember to create a DN, your phone will then authenticate with the DN as the username and the password of the "Digest User".
Under Tools go to Service Activation.
Enable "CallManger" and "tftp" in order for phones to register.




The format is SEPMACADDRESS


Although it is well-known that pptp is not secure and is subject to many forms of attacks, the reality is that a lot of legacy and embedded devices use pptp. I argue that if it is being used for routing or remote access or over an already secure connection (eg. another VPN like ikev2) then this is still acceptable. Or in a LAN or in a public environment where no private data is exchanged. However, if the nature of the data is extremely sensitive, you should do whatever it takes to have the second layer of encryption by using a secure VPN protocol.
In iptables you can find many threads and discussions about how to make pptp work with iptables, with crazy forwarding rules and blindly and manually allowing all GRE etc... However it's much more simple in my experience. You just need to enable the netfilter conntracking to be able to connect your pptp client.
This solution also applies to a node running Kubernetes and Docker containers (eg. an embedded device that is for some odd reason using pptp). If you can, switch to ikev2 or OpenVPN.
sysctl -w net.netfilter.nf_conntrack_helper=1
net.netfilter.nf_conntrack_helper=1
nf_nat_pptp 20480 0
nf_conntrack_pptp 24576 1 nf_nat_pptp
nf_nat 45056 3 nf_nat_pptp,iptable_nat,xt_MASQUERADE
nf_conntrack 139264 6 xt_conntrack,nf_nat,nf_conntrack_pptp,nf_nat_pptp,nf_conntrack_netlink,xt_MASQUERADE
Sometimes systemd-journald can take several hundred megs of RAM or more which is bad for microservices and embedded devices.
Edit /etc/systemd/journald.conf
You can set it to max 5M of RAM like below:
SystemMaxUse=5M
FreePBX official install guide is here.
Note that if you don't have the required base OS you will get an error like this at the end of the install
2024-10-23 00:30:22 - Upgrading FreePBX 17 modules
2024-10-23 00:30:22 - Installation failed at step Upgrading FreePBX 17 modules. Please check log /var/log/pbx/freepbx17-install-2024.11.05-00.14.36.log for details.
2024-10-23 00:30:22 - Error at line: 1135 exiting with code 255 (last command was: fwconsole ma upgradeall >> $log)
2024-10-23 00:30:22 - Exiting script
#log
In modulefunctions.class.php line 2814:
preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
moduleadmin [-f|--force] [-d|--debug] [--edge] [--ignorecache] [--stable] [--color] [--skipchown] [-e|--autoenable] [--skipdisabled] [--snapshot SNAPSHOT] [--format FORMAT] [-R|--repo REPO] [-t|--tag TAG] [--skipbreakingcheck] [--sendemail] [--onlystdout] [--] [
2024-10-23 00:30:22 - ****** INSTALLATION FAILED *****
2024-10-23 00:30:22 - Installation failed at step Upgrading FreePBX 17 modules. Please check log /var/log/pbx/freepbx17-install-2024.11.05-00.14.36.log for details.
2024-10-23 00:30:22 - Error at line: 1135 exiting with code 255 (last command was: fwconsole ma upgradeall >> $log)
2024-10-23 00:30:22 - Exiting script
wget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh
bash sng_freepbx_debian_install.sh
The install took about 20 minutes for me on a single core Xeon on an SSD.
If successful it should look like this at the end:
______ ______ ______ __ __
| ___| | ___ | ___ \ / /
| |_ _ __ ___ ___ | |_/ /| |_/ / V /
| _| | '__| / _ / _ | __/ | ___ /
| | | | | __/| __/| | | |_/ // /^
_| |_| ___| ___|_| ____/ / /
NOTICE! You have 4 notifications! Please log into the UI to see them!
Current Network Configuration
+-----------+-------------------+---------------------------+
| Interface | MAC Address | IP Addresses |
+-----------+-------------------+---------------------------+
| ens3 | | |
| | | fe80::dcad:beff:feef:6e79 |
+-----------+-------------------+---------------------------+
Please note most tasks should be handled through the GUI.
You can access the GUI by typing one of the above IPs in to your web browser.
For support please visit:
http://www.freepbx.org/support-and-professional-services
+---------------------------------------------------------------------+
| This machine is not activated. Activating your system ensures that |
| your machine is eligible for support and that it has the ability to |
| install Commercial Modules. |
| |
| If you already have a Deployment ID for this machine, simply run: |
| |
| fwconsole sysadmin activate deploymentid |
| |
| to assign that Deployment ID to this system. If this system is new, |
| please go to Activation (which is on the System Admin page in the |
| Web UI) and create a new Deployment there. |
+---------------------------------------------------------------------+




fwconsole firewall help
Valid Commands:
disable : Disable the System Firewall. This will shut it down cleanly.
stop : Stop the System Firewall
start : Start (and enable, if disabled) the System Firewall
restart : Restart the System Firewall
lerules [enable] or [disable] : Enable or disable Lets Encrypt rules.
trust : Add the hostname or IP specified to the Trusted Zone
untrust : Remove the hostname or IP specified from the Trusted Zone
list [zone] : List all entries in zone 'zone'
add [zone] [id id id..] : Add to 'zone' the IDs provided.
del [zone] [id id id..] : Delete from 'zone' the IDs provided.
listzones : Show zones that can be used to add and del.
fix_custom_rules : Create the files for the custom rules if they don't exist and set the permissions and owners correctly.
sync : Synchronizes all selected zones of the firewall module with the intrusion detection whitelist.
f2bstatus or f2bs : Display ignored and banned IPs. (Only root user).
When adding or deleting from a zone, one or many IDs may be provided.
These may be IP addresses, hostnames, or networks.
Example:
fwconsole firewall add trusted 10.46.80.0/24 hostname.example.com 1.2.3.4
Note that the firewall in production should never be disabled as there are massive amounts of hackers that target FreePBX and SIP servers. This can be used for learning, but ideally the firewall should be configured to whitelist yourself or other trusted IPs, rather than completely disabling.
If you are locked out:
Change 192.168.1.0/24 to your subnet or IP
iptables -I INPUT -s 192.168.1.0/24 -j ACCEPT
systemctl stop fail2ban
This buys time before the firewall reactivates.


This happens if you try the near impossible by using an older/different Debian
The current script as of 2024-10-11 has a bug where they pass -S to add-apt-repository when it must be a lower case -s which breaks everything as you can see in the log:
esolving deb.freepbx.org (deb.freepbx.org)... 52.217.40.28, 54.231.128.57, 52.217.9.44, ...
Connecting to deb.freepbx.org (deb.freepbx.org)|52.217.40.28|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3139 (3.1K) [binary/octet-stream]
Saving to: 'STDOUT'
0K ... 100% 19.4M=0s
2024-10-11 21:52:03 (19.4 MB/s) - written to stdout [3139/3139]
Usage: add-apt-repository
add-apt-repository is a script for adding apt sources.list entries.
It can be used to add any repository and also provides a shorthand
syntax for adding a Launchpad PPA (Personal Package Archive)
repository.
- The apt repository source line to add. This is one of:
a complete apt line in quotes,
a repo url and areas in quotes (areas defaults to 'main')
a PPA shortcut.
a distro component
Examples:
apt-add-repository 'deb http://myserver/path/to/repo stable myrepo'
apt-add-repository 'http://myserver/path/to/repo myrepo'
apt-add-repository 'https://packages.medibuntu.org free non-free'
apt-add-repository http://extras.ubuntu.com/ubuntu
apt-add-repository ppa:user/repository
apt-add-repository ppa:user/distro/repository
apt-add-repository multiverse
If --remove is given the tool will remove the given sourceline from your
sources.list
add-apt-repository: error: no such option: -S
This can be fixed by editing the bash installer file you downloaded and changing -S to -s

This is a quick overview of the main screens that you will need to go through to do the Cisco Unified Communication Manager installation (CUCM).




If you get the exact error below notice that it is complaining about "Reverse DNS lookup failed". You can safely proceed and continue the install, or if you control your own DNS, then you can add a reverse entry for your IP to avoid this error.





The most common issue in setting up a Cluster is that you have bad network and/or the wrong Security Password.



This is normally only an issue on machines with lots of IOPS of other usage or if you have an older/slower RAID array or mechanical disks/insufficient IO bandwidth at the moment.

Just use pdfimages:
Change yourpdf.pdf to the name of your pdf
output-name is the name format (eg. output-name01.jpg output-name02.jpg) is how the files will be named if you use "output-name". Change as needed.
pdfimages -all yourpdf.pdf output-name
After that you will have extracted all of the images.
You can also just run the command with -list and see all of the images contained within the pdf like this:
pdfimages -list file.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
2 1 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
2 2 image 1120 1120 rgb 3 8 jpeg no 8 0 136 136 245K 6.7%
2 3 smask 1120 1120 gray 1 8 image no 8 0 136 136 1236B 0.1%
3 4 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
3 5 image 1120 1120 rgb 3 8 jpeg no 14 0 136 136 216K 5.9%
3 6 smask 1120 1120 gray 1 8 image no 14 0 136 136 1236B 0.1%
4 7 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
5 8 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
6 9 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
7 10 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
8 11 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
9 12 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
10 13 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
11 14 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
11 15 image 726 429 rgb 3 8 image no 41 0 66 66 13.6K 1.5%
11 16 smask 726 429 gray 1 8 image no 41 0 66 66 343B 0.1%
12 17 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
12 18 image 726 429 rgb 3 8 image no 48 0 66 66 12.4K 1.4%
12 19 smask 726 429 gray 1 8 image no 48 0 66 66 343B 0.1%
13 20 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
13 21 image 726 429 rgb 3 8 image no 55 0 66 66 10.6K 1.2%
13 22 smask 726 429 gray 1 8 image no 55 0 66 66 343B 0.1%
14 23 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
14 24 image 726 429 rgb 3 8 image no 62 0 66 66 13.1K 1.4%
14 25 smask 726 429 gray 1 8 image no 62 0 66 66 343B 0.1%
15 26 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
15 27 image 726 429 rgb 3 8 image no 69 0 66 66 11.9K 1.3%
15 28 smask 726 429 gray 1 8 image no 69 0 66 66 343B 0.1%
16 29 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
16 30 image 726 429 rgb 3 8 image no 76 0 66 66 16.2K 1.8%
16 31 smask 726 429 gray 1 8 image no 76 0 66 66 343B 0.1%
17 32 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
17 33 image 726 429 rgb 3 8 image no 83 0 66 66 10.8K 1.2%
17 34 smask 726 429 gray 1 8 image no 83 0 66 66 343B 0.1%
18 35 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
18 36 image 726 429 rgb 3 8 image no 90 0 66 66 11.2K 1.2%
18 37 smask 726 429 gray 1 8 image no 90 0 66 66 343B 0.1%
19 38 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
19 39 image 726 429 rgb 3 8 image no 97 0 66 66 13.3K 1.5%
19 40 smask 726 429 gray 1 8 image no 97 0 66 66 343B 0.1%
20 41 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
20 42 image 726 429 rgb 3 8 image no 104 0 66 66 13.4K 1.5%
20 43 smask 726 429 gray 1 8 image no 104 0 66 66 343B 0.1%
21 44 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
21 45 image 726 429 rgb 3 8 image no 111 0 66 66 8856B 0.9%
21 46 smask 726 429 gray 1 8 image no 111 0 66 66 343B 0.1%
22 47 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
22 48 image 726 429 rgb 3 8 image no 118 0 66 66 8841B 0.9%
22 49 smask 726 429 gray 1 8 image no 118 0 66 66 343B 0.1%
23 50 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
23 51 image 726 429 rgb 3 8 image no 125 0 66 66 17.3K 1.9%
23 52 smask 726 429 gray 1 8 image no 125 0 66 66 343B 0.1%
24 53 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
24 54 image 726 429 rgb 3 8 image no 132 0 66 66 15.0K 1.6%
24 55 smask 726 429 gray 1 8 image no 132 0 66 66 343B 0.1%
25 56 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
25 57 image 726 429 rgb 3 8 image no 139 0 66 66 15.0K 1.6%
25 58 smask 726 429 gray 1 8 image no 139 0 66 66 343B 0.1%
26 59 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
26 60 image 726 429 rgb 3 8 image no 146 0 66 66 14.8K 1.6%
26 61 smask 726 429 gray 1 8 image no 146 0 66 66 343B 0.1%
27 62 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
27 63 image 726 429 rgb 3 8 image no 153 0 66 66 13.6K 1.5%
27 64 smask 726 429 gray 1 8 image no 153 0 66 66 343B 0.1%
28 65 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
28 66 image 726 429 rgb 3 8 image no 160 0 66 66 15.0K 1.6%
28 67 smask 726 429 gray 1 8 image no 160 0 66 66 343B 0.1%
29 68 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
29 69 image 726 429 rgb 3 8 image no 167 0 66 66 13.3K 1.5%
29 70 smask 726 429 gray 1 8 image no 167 0 66 66 343B 0.1%
30 71 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
30 72 image 726 429 rgb 3 8 image no 174 0 66 66 12.9K 1.4%
30 73 smask 726 429 gray 1 8 image no 174 0 66 66 343B 0.1%
31 74 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
31 75 image 726 429 rgb 3 8 image no 181 0 66 66 13.3K 1.5%
31 76 smask 726 429 gray 1 8 image no 181 0 66 66 343B 0.1%
32 77 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
32 78 image 726 429 rgb 3 8 image no 188 0 66 66 13.7K 1.5%
32 79 smask 726 429 gray 1 8 image no 188 0 66 66 343B 0.1%
33 80 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
33 81 image 726 429 rgb 3 8 image no 195 0 66 66 12.3K 1.3%
33 82 smask 726 429 gray 1 8 image no 195 0 66 66 343B 0.1%
34 83 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
34 84 image 726 429 rgb 3 8 image no 202 0 66 66 12.4K 1.4%
34 85 smask 726 429 gray 1 8 image no 202 0 66 66 343B 0.1%
35 86 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
35 87 image 726 429 rgb 3 8 image no 209 0 66 66 13.2K 1.5%
35 88 smask 726 429 gray 1 8 image no 209 0 66 66 343B 0.1%
36 89 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
36 90 image 726 429 rgb 3 8 image no 216 0 66 66 12.9K 1.4%
36 91 smask 726 429 gray 1 8 image no 216 0 66 66 343B 0.1%
37 92 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
37 93 image 726 429 rgb 3 8 image no 223 0 66 66 13.2K 1.5%
37 94 smask 726 429 gray 1 8 image no 223 0 66 66 343B 0.1%
38 95 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
38 96 image 726 429 rgb 3 8 image no 230 0 66 66 12.3K 1.4%
38 97 smask 726 429 gray 1 8 image no 230 0 66 66 343B 0.1%
39 98 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
39 99 image 726 429 rgb 3 8 image no 237 0 66 66 12.5K 1.4%
39 100 smask 726 429 gray 1 8 image no 237 0 66 66 343B 0.1%
40 101 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
40 102 image 726 429 rgb 3 8 image no 244 0 66 66 12.4K 1.4%
40 103 smask 726 429 gray 1 8 image no 244 0 66 66 343B 0.1%
41 104 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
41 105 image 726 429 rgb 3 8 image no 251 0 66 66 12.5K 1.4%
41 106 smask 726 429 gray 1 8 image no 251 0 66 66 343B 0.1%
42 107 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
42 108 image 726 429 rgb 3 8 image no 258 0 66 66 17.3K 1.9%
42 109 smask 726 429 gray 1 8 image no 258 0 66 66 343B 0.1%
43 110 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
43 111 image 726 429 rgb 3 8 image no 265 0 66 66 14.7K 1.6%
43 112 smask 726 429 gray 1 8 image no 265 0 66 66 343B 0.1%
44 113 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
44 114 image 726 429 rgb 3 8 image no 272 0 66 66 15.5K 1.7%
44 115 smask 726 429 gray 1 8 image no 272 0 66 66 343B 0.1%
45 116 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
45 117 image 726 429 rgb 3 8 image no 279 0 66 66 12.8K 1.4%
45 118 smask 726 429 gray 1 8 image no 279 0 66 66 343B 0.1%
46 119 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
46 120 image 726 429 rgb 3 8 image no 286 0 66 66 15.0K 1.6%
46 121 smask 726 429 gray 1 8 image no 286 0 66 66 343B 0.1%
47 122 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
47 123 image 726 429 rgb 3 8 image no 293 0 66 66 14.4K 1.6%
47 124 smask 726 429 gray 1 8 image no 293 0 66 66 343B 0.1%
48 125 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
48 126 image 726 429 rgb 3 8 image no 300 0 66 66 15.6K 1.7%
48 127 smask 726 429 gray 1 8 image no 300 0 66 66 343B 0.1%
49 128 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
49 129 image 726 429 rgb 3 8 image no 307 0 66 66 13.6K 1.5%
49 130 smask 726 429 gray 1 8 image no 307 0 66 66 343B 0.1%
50 131 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
50 132 image 726 429 rgb 3 8 image no 314 0 66 66 14.3K 1.6%
50 133 smask 726 429 gray 1 8 image no 314 0 66 66 343B 0.1%
51 134 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
51 135 image 726 429 rgb 3 8 image no 321 0 66 66 15.2K 1.7%
51 136 smask 726 429 gray 1 8 image no 321 0 66 66 343B 0.1%
52 137 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
52 138 image 726 429 rgb 3 8 image no 328 0 66 66 14.7K 1.6%
52 139 smask 726 429 gray 1 8 image no 328 0 66 66 343B 0.1%
53 140 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
53 141 image 726 429 rgb 3 8 image no 335 0 66 66 12.3K 1.3%
53 142 smask 726 429 gray 1 8 image no 335 0 66 66 343B 0.1%
54 143 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
54 144 image 726 429 rgb 3 8 image no 342 0 66 66 12.5K 1.4%
54 145 smask 726 429 gray 1 8 image no 342 0 66 66 343B 0.1%
55 146 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
55 147 image 726 429 rgb 3 8 image no 349 0 66 66 12.3K 1.3%
55 148 smask 726 429 gray 1 8 image no 349 0 66 66 343B 0.1%
56 149 image 2543 1553 rgb 3 8 jpeg no 4 0 231 188 64.6K 0.6%
56 150 image 726 429 rgb 3 8 image no 356 0 66 66 12.8K 1.4%
56 151 smask 726 429 gray 1 8 image no 356 0 66 66 343B 0.1%
In Windows, with some NICs, especially Intel, Windows may enable features on the card that break it in Linux. It is hard to troubleshoot as what you'll see is that the NIC is still detected in Linux, the NIC/port will be up but nothing will work (eg. DHCP requests or even static IPs won't work). You may see STP bridge traffic but that is all.
In a corporate environment this can result in many calls to support and is essentially downtime and an unnecessary waste of resources.
Generally these are any of the "Wake on LAN" or "Wake on Magic" or simiilarly named features. Make sure you disable those under Device Manager for any of your NICs.
The quick fix for this (if you don't have control over Windows) is powering off the machine and powering back.
In our example below, we create 2 hunt groups.
You could assume the #1 group is sales and #2 group is support etc.. and you can create more as needed.
The main part of hunt is the "list" option where you add each phone number that is to be part of the group
ephone-hunt 1 sequential
pilot 2001
list 1234
timeout 10
ephone-hunt 2 sequential
pilot 2002
list 5678
timeout 10
ephone-hunt 1 sequential
This sets up the first hunt group. The keyword sequential specifies that calls will be sent to each phone in the list one by one until someone answers, or the list is exhausted.
pilot 2001: This is the number used to reach the hunt group. When someone calls this number (2001), the system will follow the hunt sequence.
list 1234: This is the list of ephone-dn (directory numbers) the call will be routed to. In this case, the call will be sequentially forwarded to phones associated with extension 1234.
timeout 10: This is the amount of time (in seconds) the system will wait before trying the next phone in the sequence. In this case, it will wait for 10 seconds before forwarding the call to the next phone.
Visit https://gns3.com/software/download


Run these commands:
What we are doing is adding the repo/ppa for gns3, then updating apt and then install gns3 and the gui.
sudo add-apt-repository ppa:gns3/ppa
sudo apt update
sudo apt install gns3-gui gns3-server

Run gns3 from the terminal by typing "gns3"

In our example we take "sound.mp3" and convert it to .wav.
Generally Asterisk for its wave needs one audio channel (-ac 1) / mono and 8000hz (-ar 8000) instead of the standard CD/MP3 of 44100hz.
ffmpeg -i sound.mp3 -ac 1 -ar 8000 sound.wav
Errors Asterisk may give you if the format is wrong:
-- Executing [91781891@cme:3] Playback("SIP/234-00000008", "/var/lib/asterisk/sounds/sound") in new stack
[Sep 26 15:45:32] WARNING[4400][C-00000009]: format_wav.c:111 check_header_fmt: Unexpected frequency mismatch 44100 (expecting 8000)
[Sep 26 15:45:32] WARNING[4400][C-00000009]: file.c:510 fn_wrapper: Unable to open format wav
[Sep 26 15:45:32] WARNING[4400][C-00000009]: file.c:1303 ast_streamfile: Unable to open /var/lib/asterisk/sounds/sound (format (ulaw)): No such file or directory
[Sep 26 15:45:32] WARNING[4400][C-00000009]: app_playback.c:513 playback_exec: Playback failed on SIP/234-00000008 for /var/lib/asterisk/sounds/sound
-- Executing [9132131@cme:3] Playback("SIP/234-00000006", "/var/lib/asterisk/sounds/sound") in new stack
[Sep 26 15:44:18] WARNING[4384][C-00000007]: format_wav.c:102 check_header_fmt: Not in mono 2
[Sep 26 15:44:18] WARNING[4384][C-00000007]: file.c:510 fn_wrapper: Unable to open format wav
[Sep 26 15:44:18] WARNING[4384][C-00000007]: file.c:1303 ast_streamfile: Unable to open /var/lib/asterisk/sounds/sound (format (ulaw)): No such file or directory
[Sep 26 15:44:18] WARNING[4384][C-00000007]: app_playback.c:513 playback_exec: Playback failed on SIP/234-00000006 for /var/lib/asterisk/sounds/sound
#Remember that you need a valid gateway IP unless the Asterisk server is on the same subnet and LAN
ip route 0.0.0.0 0.0.0.0 GATEWAYIP
voice service voip
ip address trusted list
ipv4 0.0.0.0 0.0.0.0
sip
sip-ua
credentials username username password password realm asterisk
registrar ipv4:ASTERISKIP expires 3600
sip-server ipv4:ASTERISKIP
This is so we can actually make calls out through it. In our case we are simulating a typical office setup where you dial 9 for outside access. This is a very "unoptimized" way that takes too long, in reality you probably want dial-peers that have more specific matches eg for local numbers (713-403-1234) format.
dial-peer voice 123 voip
destination-pattern 9T
session protocol sipv2
session target ipv4:ASTERISKIP
codec g711ulaw
At this point if you have done things correctly, all calls beginning with a 9 will go out through Asterisk (unless you already have more specific dial-peers).
Remember Asterisk must be configured to accept the client. In some cases, you may need to modify the security users for the "friend" on Asterisk.

This is how we configure outside PSTN access or dialing through another SIP trunk. Beware that this a simplistic example that neglects most security including SRTP
First you'll need to be in config mode:
There are more options but for now we'll just focus on security/allowing connections to and from our phones and the trunk.
Router(config)#voice service voip
Then enter the trusted IP list:
Router(conf-voi-serv)#ip address trusted list
Set Trusted IPs:
In practice you would set the static IPs/ranges of your SIP trunk(s)
o be easy/insecure for testing just set any IP as being trusted (for trusted/LAN/testing only!)
Router(cfg-iptrust-list)#ipv4 0.0.0.0 0.0.0.0
To set a specify IP
This could be one of your SIP trunk IPs
Router(cfg-iptrust-list)#ipv4 192.168.5.20 255.255.255.0
To set a range (/24):
This may be a range of phones on your internal network that you want to trust.
Router(cfg-iptrust-list)#ipv4 10.0.0.0 255.255.255.0
You can add more entries as needed.
We'll set our preferred codec list
Router(config)#voice class codec 1
Router(config-class)#codec preference 1 g711ulaw
Router(config-class)#codec preference 2 g729r8
Go back to config mode:
Here is how we setup our trunk, depending on your service provider it may have different requirements (most providers will provide example configs).
Basically we are just authenticating using our username and password from our SIP provider and the last part "realm" is the IP or domain of the server.
authentication command will use the default username/password when authenticating.
credentials command is really the same but you can have multiple of these (eg. if you have accounts with multiple SIP trunks/providers).
Router(config)#sip-ua
Router(config-sip-ua)#credentials username YOUR-USERNAME password 0 YOUR-PASSWORD realm IP-or-domain-of-Trunk.com
There is another option for credentials which can specify a specific phone number tied to the account (some providers do this and some may not).
Router(config-sip-ua)#credentials number 1234 username YOUR-USERNAME password 0 YOUR-PASSWORD realm IP-or-domain-of-Trunk.com
Router(config-sip-ua)#authentication username YOUR-USERNAME password 0 YOUR-PASSWORD realm IP-or-domain-of-Trunk.com
This is a generic use the trunk for all non-local calls, but in practice, you may have many providers and may have a more specific dial pattern so perhaps calls for country ABC go through dialpeer 4444 to give better or cheaper calls to a specific destination.
Be in config mode
In our example we call our dial-peer "123" but it could be any unused number.
Create the dial-peer
Router(config)#dial-peer voice 123 voip
We set destination pattern as anything starting with a 9 (the idea is that 9 is for dialing out, change according to your needs).
Router(config-dial-peer)#destination-pattern 9T
We set the protocol as sip, since we use this protocol for a SIP trunk of course.
Router(config-dial-peer)#session protocol sipv2
We set the codec, a very standard g711ulaw, but change according to your needs (what your provider also must support).
Router(config-dial-peer)#codec g711ulaw
Set callerid (usually should be the number your provider assigned):
In this example we set callerid as "12345678"
Router(config-dial-peer)#clid network-number 12345678
Set your session target
It's Cisco talk about which IP/domain do we send the calls to when this dial-peer is matched?
You can use a hostname like this
Router(config-dial-peer)#session target dns:your-server-domain
Or preferably if they have a static IP use this:
Router(config-dial-peer)#session target ipv4:192.168.5.254

In newer versions this is a very stubborn issue. Here is how you fix it.
sudo mkdir /etc/vbox/
sudo vi /etc/vbox/networks.conf
put this in:
In our case we can use the slash /16 range of 192.168.0..0, change the subnet according to your needs (do not break the formatting remember you need * and space before the subnet as shown)
* 192.168.0.0/16
Note there is a * and a space between the 192.168.0.0/16 otherwise it won't work.
service virtualbox restart
now reopen the GUI.
Edit your host-only network, you will find the IP changes back. However, if you close and open Vbox you should see that it did indeed set.
Since newer versions of Ubuntu like 20, you will find there is no longer dynagen and that the dynamips provided is faulty and will segfault each time:
Cisco Router Simulation Platform (version 0.2.14-amd64/Linux stable)
Copyright (c) 2005-2011 Christophe Fillot.
Build date: Apr 3 2018 12:20:29
Local UUID: 3c1c0b7f-2fab-4fda-b40b-74841d1bcfe0
Instance ID set to 1.
netio_tap_create: unable to open TAP device tap1 (No such file or directory)
C7200 'default': unable to create NETIO descriptor for slot 0
IOS image file: c7200-adventerprisek9-mz.151-4.M.bin
ILT: loaded table "mips64j" from cache.
ILT: loaded table "mips64e" from cache.
ILT: loaded table "ppc32j" from cache.
ILT: loaded table "ppc32e" from cache.
CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb.
C7200 instance 'default' (id 1):
VM Status : 0
RAM size : 256 Mb
IOMEM size : 0 Mb
NVRAM size : 128 Kb
NPE model : npe-400
Midplane : vxr
IOS image : c7200-adventerprisek9-mz.151-4.M.bin
Loading ELF file 'c7200-adventerprisek9-mz.151-4.M.bin'...
ELF entry point: 0x80008000
C7200 'default': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled.
Segmentation fault (core dumped)

As you can see from the output, the newest version in the repo is 0.2.14 which was built in 2018. The versioning numbers themselves, without being a whole number, are understandly "alpha" sounding versions.
Clearly, something has to be fixed and there is no newer version in the repos, so we'll have to compile our own.
Fortunately the project was picked up and lives on here: https://github.com/GNS3/dynamips
apt install git libpcap0.8-dev libelf-dev cmake
git clone https://github.com/GNS3/dynamips
Cloning into 'dynamips'...
remote: Enumerating objects: 4195, done.
remote: Counting objects: 100% (775/775), done.
remote: Compressing objects: 100% (134/134), done.
remote: Total 4195 (delta 694), reused 641 (delta 641), pack-reused 3420 (from 1)
Receiving objects: 100% (4195/4195), 2.63 MiB | 20.39 MiB/s, done.
Resolving deltas: 100% (3019/3019), done.
cd dynamips
mkdir build
cd build
cmake .. -DDYNAMIPS_CODE=stable
You should see this at the end of successful compilation:
-- DYNAMIPS_FLAGS=-m64;-Wall;-O2;-fomit-frame-pointer
-- DYNAMIPS_DEFINITIONS=-DHAS_POSIX_MEMALIGN=1;-DDYNAMIPS_VERSION="0.2.23";-DJIT_ARCH="amd64";-DJIT_CPU=CPU_amd64;-DMIPS64_ARCH_INC_FILE="mips64_amd64_trans.h";-DPPC32_ARCH_INC_FILE="ppc32_amd64_trans.h";-D_FILE_OFFSET_BITS=64;-D_LARGEFILE_SOURCE;-D_LARGEFILE64_SOURCE;-DLINUX_ETH;-DGEN_ETH;-DHAS_RFC2553=1;-DOSNAME=Linux
-- DYNAMIPS_INCLUDES=/usr/include
-- DYNAMIPS_LIBRARIES=dl;rt;nsl;/usr/lib/x86_64-linux-gnu/libelf.so;-lpthread;/usr/lib/x86_64-linux-gnu/libpcap.so
-- configure - END
Summary:
CMAKE_INSTALL_PREFIX : /usr/local
DYNAMIPS_ARCH : amd64
DYNAMIPS_CODE : stable
DYNAMIPS_RENAME : dynamips_amd64_stable -> dynamips (auto)
BUILD_NVRAM_EXPORT : ON
BUILD_UDP_SEND : OFF
BUILD_UDP_RECV : OFF
Large File support : ENABLE_LARGEFILE=ON
Linux Ethernet (RAW sockets) : ENABLE_LINUX_ETH=ON (linux_eth)
Generic Ethernet (libpcap/WinPcap) : ENABLE_GEN_ETH=ON (gen_eth)
IPv6 support (RFC 2553) : ENABLE_IPV6=ON
-- Configuring done
-- Generating done
-- Build files have been written to: /root/dynamips/build
root@d038b4fbf6e1:~/dynamips/build#
Now make and install
make
make install
ln -s /usr/local/bin/dynamips /bin
Confirm it is the right version:
You should as below that it is version 0.2.23 and the compilation date should be the date and time you did this.
dynamips|head
Please specify an IOS image filename
Cisco Router Simulation Platform (version 0.2.23-amd64/Linux stable)
Copyright (c) 2005-2011 Christophe Fillot.
Build date: Sep 16 2024 21:09:39
Make sure this makes sense for you but I've started to block a lot of commercial Cloud services and easily accessible providers as they are a very high source of abusive traffic. The cost savings for a lot of organizations are huge, as you now have less bandwidth usage and less resource usage from garbage/bot/malicious traffic. This mainly works for when you can be reasonably sure that your audience has no business visiting your service(s) from freely accessible commercial IP space (eg. Amazon, Huawei Cloud, Oracle Cloud etc..). In general, any large service that offers Cloud to anyone without proper authentication, for cheap or offer any free trials/refunds (having a credit card is not enough authentication) is going to be a huge source of abusive traffic.
Some is not meant to be abusive but many of the SEO tools and services will scan your site, often causing a huge load by constantly hitting your services every second or several times per second. Even if this does not slow your services down, there is a cost to it and you may be surprised at how much it is costing you or how much extra CPU, RAM and disk IO is wasted to abuse.
This will serve as a comprehensive list of suggested ranges to block. If this causes issues from legitimate traffic, make sure you have a mechanism in place to whitelist "known good IPs" that you, your work or clients may be using. Also discourage the use of rotating IPs unless there is a good reason, all traffic should be received by static IPs that are whitelisted.
If you have publicly accessible services, there are generally not too many good reasons why users should be hitting you from commercial cloud services or VPN providers (unless your users genuinely need a VPN for security or to access your services). These services are a huge waste of resources as in many cases, I've seen 80-90% of traffic is just garbage traffic, and often it is a competitor or bad actor using these services to actively attack public services.
Now if you happen to know a service that uses a cloud service, such as Pinterest using Amazon and don't want to block it, you can whitelist their IP ranges as most reputable services will list their range of IPs for this purpose.
Note that this is not recommended as replacement for good security and firewalls but it already reduces the abusive traffic angle.
However, given that the Cloud providers offer services to anyone, they are still a source of intentionally maliicious traffic because throw away accounts are allowed on many Cloud services (eg. free trial that one uses with a prepaid credit card for the purposes of abuse).
The presence or lack of presence of a Cloud provider here does not mean they are better or worse for abuse, but I just haven't gotten a chance to list them here yet.
All proposed blocks are based on real-world examples (eg. abusive traffic coming from those hosts).
In another post we'll list a bunch of bad user agents to block.
1.) If you value privacy or control of your data
2.) If you are using it as a VPN or other outward facing service there is a good chance it may be transparently blocked.
3.) If you must use a VPN, it is best to run it from one of your office's legitimate internet connection as these IPs are the least likely to be blocked.
Beware that user agents can be forged, many DDOS services will try to masquerade as a legitimate service or scanning tool but you will often find that there is no relation (eg. a bot hitting your site that has the Google bot agent set but is really from Digital Ocean and not truly Google).
In general any cheap provider and any large provider should probably be blocked. This especially means providers that offer a free trial or X-day money back guarantee.
turnitin
It's a service for plagiarism but we've seen it hitting client servers abusively so it's the same as a DDOS/waste of resources/botnet since it offers no value to the hoster.
199.47.80.0/21
Popular tools include:
If you aren't using the tools for the particular site(s) running then these should be blocked or at least give them a 403 based on the user agent.
We've seen several SEO tools used at once by determined attacker as a similar impact as DDOS by having reports run on the target site/URL done by several SEO tools or other scanning site performance tools that were otherwise legitimate.
If you don't get traffic from certain search engines then consider blocking them. There are dozens of other smaller crawling services that cause huge issues.
This has the double effect of preserving your resources and stopping AI from stealing or using your info in their replies.
Our experience is that most providers simply don't have time or care about the large amount of abuse reports they get (eg. complain and you will usually never receive any response or action).
1.178.32.0/20
1.178.48.0/20
101.44.0.0/20
101.44.144.0/20
101.44.16.0/20
101.44.160.0/20
101.44.173.0/24
101.44.176.0/20
101.44.192.0/20
101.44.208.0/22
101.44.212.0/22
101.44.216.0/22
101.44.220.0/22
101.44.224.0/22
101.44.228.0/22
101.44.232.0/22
101.44.236.0/22
101.44.244.0/22
101.44.248.0/22
101.44.252.0/24
101.44.253.0/24
101.44.254.0/24
101.44.255.0/24
101.44.32.0/20
101.44.48.0/20
101.44.64.0/20
101.44.80.0/20
101.44.96.0/20
101.46.0.0/20
101.46.128.0/21
101.46.136.0/21
101.46.144.0/21
101.46.152.0/21
101.46.160.0/21
101.46.168.0/21
101.46.176.0/21
101.46.184.0/21
101.46.192.0/21
101.46.208.0/21
101.46.216.0/21
101.46.236.0/22
101.46.240.0/22
101.46.248.0/22
101.46.252.0/24
101.46.254.0/24
101.46.255.0/24
101.46.32.0/20
101.46.48.0/20
101.46.64.0/20
103.215.0.0/24
103.215.1.0/24
103.215.3.0/24
103.239.72.0/24
103.240.157.0/24
103.255.61.0/24
103.255.62.0/24
110.238.100.0/22
110.238.104.0/21
110.238.112.0/21
110.238.120.0/22
110.238.124.0/22
110.238.64.0/21
110.238.72.0/21
110.238.80.0/20
110.238.96.0/24
110.238.98.0/24
110.238.99.0/24
110.239.127.0/24
110.239.64.0/19
110.239.96.0/19
110.41.210.0/24
110.41.90.0/24
111.119.192.0/20
111.119.208.0/20
111.119.224.0/20
111.119.240.0/20
114.119.128.0/19
114.119.160.0/21
114.119.168.0/24
114.119.169.0/24
114.119.170.0/24
114.119.171.0/24
114.119.172.0/22
114.119.176.0/20
115.30.32.0/20
115.30.48.0/20
119.12.160.0/20
119.13.112.0/20
119.13.160.0/24
119.13.161.0/24
119.13.162.0/23
119.13.163.0/24
119.13.164.0/22
119.13.168.0/24
119.13.169.0/24
119.13.170.0/24
119.13.171.0/24
119.13.172.0/24
119.13.173.0/24
119.13.174.0/24
119.13.175.0/24
119.13.64.0/24
119.13.65.0/24
119.13.66.0/23
119.13.68.0/22
119.13.72.0/22
119.13.76.0/22
119.13.80.0/21
119.13.88.0/22
119.13.92.0/22
119.13.96.0/20
119.8.0.0/21
119.8.128.0/24
119.8.129.0/24
119.8.13.0/24
119.8.130.0/23
119.8.132.0/22
119.8.136.0/21
119.8.144.0/20
119.8.15.0/24
119.8.160.0/19
119.8.18.0/24
119.8.192.0/20
119.8.192.0/21
119.8.200.0/21
119.8.208.0/20
119.8.21.0/24
119.8.22.0/24
119.8.224.0/24
119.8.227.0/24
119.8.228.0/22
119.8.23.0/24
119.8.232.0/21
119.8.24.0/21
119.8.240.0/23
119.8.242.0/23
119.8.244.0/24
119.8.245.0/24
119.8.246.0/24
119.8.247.0/24
119.8.248.0/24
119.8.249.0/24
119.8.250.0/24
119.8.252.0/24
119.8.253.0/24
119.8.254.0/23
119.8.32.0/19
119.8.4.0/24
119.8.64.0/22
119.8.68.0/24
119.8.69.0/24
119.8.70.0/24
119.8.71.0/24
119.8.72.0/21
119.8.8.0/21
119.8.80.0/20
119.8.96.0/19
121.91.152.0/21
121.91.168.0/21
121.91.200.0/21
121.91.200.0/24
122.8.128.0/20
122.8.144.0/20
122.8.160.0/20
122.8.176.0/21
122.8.184.0/22
122.8.188.0/22
124.243.128.0/18
124.243.156.0/24
124.243.157.0/24
124.243.158.0/24
124.243.159.0/24
124.71.248.0/24
124.71.249.0/24
124.71.252.0/24
124.71.253.0/24
124.81.0.0/20
124.81.16.0/20
124.81.160.0/20
124.81.176.0/20
124.81.192.0/20
124.81.208.0/20
124.81.224.0/20
124.81.240.0/20
124.81.32.0/20
124.81.48.0/20
124.81.64.0/20
124.81.80.0/20
14.137.132.0/22
14.137.136.0/22
14.137.140.0/22
14.137.152.0/24
14.137.153.0/24
14.137.154.0/24
14.137.156.0/24
14.137.157.0/24
14.137.161.0/24
14.137.169.0/24
14.137.170.0/23
14.137.172.0/22
149.232.128.0/20
149.232.144.0/20
150.40.128.0/20
150.40.144.0/20
150.40.160.0/20
150.40.176.0/20
150.40.192.0/20
150.40.208.0/20
150.40.224.0/20
150.40.240.0/20
154.220.192.0/19
154.81.16.0/20
154.83.0.0/23
154.86.32.0/20
154.86.48.0/20
154.93.100.0/23
154.93.104.0/23
156.227.22.0/23
156.230.32.0/21
156.230.40.0/21
156.230.64.0/18
156.232.16.0/20
156.240.128.0/18
156.249.32.0/20
156.253.16.0/20
159.138.0.0/20
159.138.112.0/21
159.138.114.0/24
159.138.120.0/22
159.138.124.0/24
159.138.125.0/24
159.138.126.0/23
159.138.128.0/20
159.138.144.0/20
159.138.152.0/21
159.138.16.0/22
159.138.160.0/20
159.138.176.0/23
159.138.178.0/24
159.138.179.0/24
159.138.180.0/24
159.138.181.0/24
159.138.182.0/23
159.138.188.0/23
159.138.190.0/23
159.138.192.0/20
159.138.20.0/22
159.138.208.0/21
159.138.216.0/22
159.138.220.0/23
159.138.224.0/20
159.138.24.0/21
159.138.240.0/20
159.138.32.0/20
159.138.48.0/20
159.138.64.0/21
159.138.67.0/24
159.138.76.0/24
159.138.77.0/24
159.138.78.0/24
159.138.79.0/24
159.138.80.0/20
159.138.96.0/20
166.108.192.0/20
166.108.208.0/20
166.108.224.0/20
166.108.240.0/20
176.52.128.0/20
176.52.144.0/20
180.87.192.0/20
180.87.208.0/20
180.87.224.0/20
180.87.240.0/20
182.160.0.0/20
182.160.16.0/24
182.160.17.0/24
182.160.18.0/23
182.160.20.0/24
182.160.24.0/21
182.160.36.0/22
182.160.49.0/24
182.160.52.0/22
182.160.56.0/24
182.160.57.0/24
182.160.58.0/24
182.160.59.0/24
182.160.60.0/24
182.160.61.0/24
182.160.62.0/24
183.87.112.0/20
183.87.128.0/20
183.87.144.0/20
183.87.32.0/20
183.87.48.0/20
183.87.64.0/20
183.87.80.0/20
183.87.96.0/20
188.239.0.0/20
188.239.16.0/20
189.1.192.0/20
189.1.208.0/20
189.1.224.0/20
189.1.240.0/20
189.28.112.0/20
189.28.96.0/20
190.92.192.0/19
190.92.224.0/19
190.92.248.0/24
190.92.252.0/24
190.92.253.0/24
190.92.254.0/24
193.105.244.0/23
193.84.248.0/23
201.77.32.0/20
202.170.88.0/21
203.123.80.0/20
203.167.20.0/23
203.167.22.0/24
212.34.192.0/20
212.34.208.0/20
212.34.216.32/32
213.250.128.0/20
213.250.144.0/20
27.106.0.0/20
27.106.112.0/20
27.106.16.0/20
27.106.32.0/20
27.106.48.0/20
27.106.64.0/20
27.106.80.0/20
27.106.96.0/20
43.225.140.0/22
43.255.104.0/22
45.194.104.0/21
45.199.144.0/22
45.202.128.0/19
45.202.160.0/20
45.202.176.0/21
45.202.184.0/21
45.203.32.0/21
45.203.40.0/21
46.250.160.0/20
46.250.176.0/20
49.0.192.0/21
49.0.200.0/21
49.0.224.0/22
49.0.228.0/22
49.0.232.0/21
49.0.240.0/20
80.238.132.0/22
80.238.136.0/22
80.238.180.0/24
80.238.190.0/24
80.238.192.0/20
80.238.208.0/20
80.238.224.0/20
83.101.0.0/21
83.101.16.0/21
83.101.48.0/21
83.101.56.0/21
87.119.12.0/24
94.45.160.0/24
94.45.161.0/24
94.45.163.0/24
94.74.112.0/21
94.74.120.0/21
94.74.64.0/20
94.74.80.0/20
94.74.96.0/20
Digital Ocean is a huge offender based on experience and we have never seen any response to abuse complaints.
5.101.96.0/21
5.101.104.0/22
5.101.108.0/24
5.101.109.0/24
5.101.110.0/24
5.101.111.0/24
24.144.64.0/22
24.144.68.0/22
24.144.72.0/24
24.144.73.0/24
24.144.74.0/23
24.144.76.0/22
24.144.80.0/20
24.144.96.0/19
24.199.64.0/22
24.199.68.0/22
24.199.72.0/21
24.199.80.0/20
24.199.96.0/20
24.199.112.0/20
37.139.0.0/19
45.55.0.0/19
45.55.32.0/19
45.55.64.0/19
45.55.96.0/22
45.55.100.0/22
45.55.104.0/22
45.55.108.0/22
45.55.112.0/22
45.55.116.0/22
45.55.120.0/22
45.55.124.0/22
45.55.128.0/18
45.55.192.0/18
46.101.0.0/18
46.101.64.0/22
46.101.68.0/22
46.101.72.0/21
46.101.80.0/20
46.101.96.0/19
46.101.128.0/17
64.23.128.0/20
64.23.144.0/20
64.23.160.0/20
64.23.176.0/20
64.23.192.0/19
64.23.224.0/20
64.23.240.0/20
64.225.0.0/20
64.225.16.0/20
64.225.32.0/20
64.225.48.0/20
64.225.64.0/20
64.225.80.0/22
64.225.84.0/22
64.225.88.0/22
64.225.92.0/22
64.225.96.0/20
64.225.112.0/20
64.226.64.0/20
64.226.80.0/20
64.226.96.0/20
64.226.112.0/20
64.227.0.0/20
64.227.16.0/20
64.227.32.0/20
64.227.48.0/20
64.227.64.0/20
64.227.80.0/20
64.227.96.0/20
64.227.112.0/20
64.227.128.0/19
64.227.160.0/20
64.227.176.0/20
67.205.128.0/20
67.205.144.0/20
67.205.160.0/20
67.205.176.0/20
67.207.64.0/23
67.207.66.0/24
67.207.68.0/22
67.207.72.0/22
67.207.76.0/22
67.207.80.0/20
68.183.0.0/20
68.183.16.0/20
68.183.32.0/20
68.183.48.0/20
68.183.64.0/20
68.183.80.0/20
68.183.96.0/20
68.183.112.0/20
68.183.128.0/20
68.183.144.0/20
68.183.160.0/20
68.183.176.0/20
68.183.192.0/20
68.183.208.0/20
68.183.224.0/20
68.183.240.0/22
68.183.244.0/22
68.183.248.0/22
68.183.252.0/22
69.55.48.0/22
69.55.49.0/24
69.55.54.0/24
69.55.55.0/24
69.55.58.0/23
69.55.60.0/22
80.240.128.0/20
82.196.0.0/20
95.85.0.0/18
103.253.144.0/22
104.131.0.0/18
104.131.64.0/18
104.131.128.0/20
104.131.144.0/20
104.131.160.0/20
104.131.176.0/20
104.131.192.0/19
104.131.224.0/19
104.236.0.0/18
104.236.64.0/18
104.236.128.0/18
104.236.192.0/18
104.248.0.0/20
104.248.16.0/20
104.248.32.0/20
104.248.48.0/20
104.248.64.0/20
104.248.80.0/20
104.248.96.0/22
104.248.100.0/22
104.248.104.0/22
104.248.108.0/22
104.248.112.0/20
104.248.128.0/20
104.248.144.0/20
104.248.160.0/20
104.248.176.0/20
104.248.192.0/20
104.248.208.0/20
104.248.224.0/20
104.248.240.0/20
107.170.0.0/17
107.170.128.0/19
107.170.160.0/19
107.170.192.0/18
128.199.0.0/20
128.199.16.0/20
128.199.32.0/19
128.199.64.0/18
128.199.128.0/18
128.199.192.0/18
134.122.0.0/20
134.122.16.0/20
134.122.32.0/20
134.122.48.0/20
134.122.64.0/20
134.122.80.0/20
134.122.96.0/20
134.122.112.0/20
134.209.0.0/20
134.209.16.0/20
134.209.32.0/20
134.209.48.0/20
134.209.64.0/20
134.209.80.0/20
134.209.96.0/20
134.209.112.0/20
134.209.128.0/22
134.209.132.0/22
134.209.136.0/22
134.209.140.0/22
134.209.144.0/20
134.209.160.0/20
134.209.176.0/20
134.209.192.0/20
134.209.208.0/20
134.209.224.0/20
134.209.240.0/20
137.184.0.0/20
137.184.16.0/20
137.184.32.0/20
137.184.48.0/20
137.184.64.0/20
137.184.80.0/20
137.184.96.0/20
137.184.112.0/20
137.184.128.0/20
137.184.144.0/20
137.184.160.0/20
137.184.176.0/20
137.184.192.0/20
137.184.208.0/20
137.184.224.0/20
137.184.240.0/22
137.184.244.0/22
137.184.248.0/22
137.184.252.0/24
137.184.254.0/24
137.184.255.0/24
138.68.0.0/20
138.68.16.0/20
138.68.32.0/24
138.68.34.0/24
138.68.36.0/22
138.68.40.0/21
138.68.48.0/20
138.68.64.0/20
138.68.80.0/20
138.68.96.0/20
138.68.112.0/22
138.68.116.0/22
138.68.120.0/23
138.68.122.0/23
138.68.124.0/22
138.68.128.0/20
138.68.144.0/20
138.68.160.0/20
138.68.176.0/20
138.68.192.0/22
138.68.196.0/22
138.68.200.0/22
138.68.204.0/22
138.68.208.0/20
138.68.224.0/20
138.68.240.0/20
138.197.0.0/20
138.197.16.0/20
138.197.32.0/20
138.197.48.0/22
138.197.52.0/22
138.197.56.0/22
138.197.60.0/22
138.197.64.0/20
138.197.80.0/20
138.197.96.0/20
138.197.112.0/20
138.197.128.0/20
138.197.144.0/20
138.197.160.0/20
138.197.176.0/20
138.197.192.0/20
138.197.208.0/20
138.197.224.0/22
138.197.228.0/22
138.197.232.0/22
138.197.236.0/22
138.197.240.0/22
138.197.252.0/22
139.59.0.0/20
139.59.16.0/20
139.59.32.0/20
139.59.48.0/22
139.59.52.0/22
139.59.56.0/21
139.59.64.0/20
139.59.80.0/20
139.59.96.0/20
139.59.112.0/20
139.59.128.0/19
139.59.160.0/20
139.59.176.0/20
139.59.192.0/22
139.59.196.0/22
139.59.200.0/22
139.59.204.0/22
139.59.208.0/21
139.59.216.0/22
139.59.220.0/22
139.59.224.0/20
139.59.240.0/20
141.0.169.0/24
141.0.170.0/24
142.93.0.0/20
142.93.16.0/20
142.93.32.0/20
142.93.48.0/20
142.93.64.0/20
142.93.80.0/20
142.93.96.0/20
142.93.112.0/20
142.93.128.0/20
142.93.144.0/20
142.93.160.0/20
142.93.176.0/20
142.93.192.0/20
142.93.208.0/20
142.93.224.0/20
142.93.240.0/20
143.110.128.0/20
143.110.144.0/20
143.110.160.0/20
143.110.176.0/20
143.110.192.0/20
143.110.208.0/20
143.110.224.0/20
143.110.240.0/20
143.198.0.0/20
143.198.16.0/20
143.198.32.0/20
143.198.48.0/20
143.198.64.0/20
143.198.80.0/20
143.198.96.0/20
143.198.112.0/20
143.198.128.0/20
143.198.144.0/20
143.198.160.0/20
143.198.176.0/20
143.198.192.0/20
143.198.208.0/20
143.198.224.0/20
143.198.240.0/22
143.198.244.0/22
143.198.248.0/22
143.244.128.0/20
143.244.144.0/20
143.244.160.0/20
143.244.176.0/20
143.244.196.0/22
143.244.200.0/22
143.244.204.0/22
143.244.208.0/22
143.244.212.0/22
143.244.217.0/24
143.244.218.0/24
143.244.219.0/24
143.244.220.0/22
144.126.192.0/20
144.126.208.0/20
144.126.224.0/20
144.126.240.0/22
144.126.244.0/22
144.126.248.0/22
144.126.252.0/22
146.185.128.0/19
146.185.160.0/20
146.185.176.0/21
146.185.184.0/21
146.190.0.0/22
146.190.4.0/22
146.190.8.0/22
146.190.12.0/22
146.190.16.0/20
146.190.32.0/19
146.190.64.0/20
146.190.80.0/20
146.190.96.0/20
146.190.112.0/20
146.190.128.0/19
146.190.160.0/20
146.190.176.0/22
146.190.184.0/22
146.190.188.0/22
146.190.192.0/22
146.190.196.0/22
146.190.200.0/22
146.190.204.0/22
146.190.208.0/20
146.190.224.0/20
146.190.240.0/20
147.182.128.0/20
147.182.144.0/20
147.182.160.0/20
147.182.176.0/20
147.182.192.0/20
147.182.208.0/20
147.182.224.0/20
147.182.240.0/20
152.42.128.0/20
152.42.144.0/22
152.42.148.0/22
152.42.152.0/22
152.42.156.0/22
152.42.160.0/19
152.42.192.0/19
152.42.224.0/20
152.42.240.0/20
157.230.0.0/20
157.230.16.0/20
157.230.32.0/20
157.230.48.0/20
157.230.64.0/22
157.230.68.0/22
157.230.72.0/22
157.230.76.0/22
157.230.80.0/20
157.230.96.0/20
157.230.112.0/20
157.230.128.0/20
157.230.144.0/20
157.230.160.0/20
157.230.176.0/20
157.230.192.0/22
157.230.196.0/22
157.230.200.0/22
157.230.204.0/22
157.230.208.0/20
157.230.224.0/20
157.230.240.0/20
157.245.0.0/20
157.245.16.0/22
157.245.20.0/22
157.245.24.0/22
157.245.28.0/22
157.245.32.0/20
157.245.48.0/20
157.245.64.0/20
157.245.80.0/20
157.245.96.0/20
157.245.112.0/20
157.245.128.0/20
157.245.144.0/20
157.245.160.0/20
157.245.176.0/20
157.245.192.0/20
157.245.208.0/20
157.245.224.0/20
157.245.240.0/20
159.65.0.0/20
159.65.16.0/20
159.65.32.0/20
159.65.48.0/20
159.65.64.0/20
159.65.80.0/20
159.65.96.0/20
159.65.112.0/20
159.65.128.0/20
159.65.144.0/20
159.65.160.0/20
159.65.176.0/20
159.65.192.0/20
159.65.208.0/22
159.65.212.0/22
159.65.216.0/21
159.65.224.0/20
159.65.240.0/20
159.89.0.0/20
159.89.16.0/20
159.89.32.0/20
159.89.48.0/21
159.89.58.0/24
159.89.59.0/24
159.89.60.0/24
159.89.61.0/24
159.89.62.0/24
159.89.63.0/24
159.89.64.0/20
159.89.80.0/20
159.89.96.0/20
159.89.112.0/20
159.89.128.0/20
159.89.144.0/20
159.89.160.0/20
159.89.176.0/20
159.89.192.0/20
159.89.208.0/22
159.89.212.0/22
159.89.216.0/22
159.89.220.0/22
159.89.224.0/20
159.89.240.0/22
159.89.244.0/22
159.89.248.0/22
159.89.252.0/22
159.203.0.0/20
159.203.16.0/20
159.203.32.0/20
159.203.48.0/22
159.203.52.0/22
159.203.56.0/21
159.203.64.0/20
159.203.80.0/20
159.203.96.0/20
159.203.112.0/20
159.203.128.0/20
159.203.144.0/22
159.203.148.0/22
159.203.152.0/22
159.203.156.0/22
159.203.160.0/20
159.203.176.0/20
159.203.192.0/20
159.203.208.0/20
159.203.224.0/20
159.203.240.0/20
159.223.0.0/20
159.223.16.0/20
159.223.32.0/20
159.223.48.0/20
159.223.64.0/20
159.223.80.0/20
159.223.96.0/20
159.223.112.0/20
159.223.128.0/20
159.223.144.0/20
159.223.160.0/19
159.223.192.0/20
159.223.208.0/20
159.223.224.0/20
159.223.240.0/22
159.223.244.0/22
159.223.248.0/22
161.35.0.0/20
161.35.16.0/20
161.35.32.0/20
161.35.48.0/20
161.35.64.0/20
161.35.80.0/20
161.35.96.0/20
161.35.112.0/20
161.35.128.0/20
161.35.144.0/20
161.35.160.0/20
161.35.176.0/20
161.35.192.0/20
161.35.208.0/20
161.35.224.0/20
161.35.240.0/22
161.35.244.0/22
161.35.248.0/22
161.35.252.0/22
162.243.0.0/17
162.243.128.0/19
162.243.160.0/20
162.243.184.0/22
162.243.188.0/23
162.243.190.0/24
162.243.191.0/24
162.243.192.0/18
163.47.8.0/22
164.90.128.0/20
164.90.144.0/20
164.90.160.0/20
164.90.176.0/20
164.90.192.0/20
164.90.208.0/20
164.90.224.0/20
164.90.240.0/22
164.90.244.0/22
164.90.248.0/24
164.90.249.0/24
164.90.250.0/24
164.90.252.0/22
164.92.64.0/19
164.92.96.0/19
164.92.128.0/20
164.92.144.0/20
164.92.160.0/20
164.92.176.0/20
164.92.192.0/20
164.92.208.0/20
164.92.224.0/20
164.92.240.0/20
165.22.0.0/20
165.22.16.0/20
165.22.32.0/20
165.22.48.0/20
165.22.64.0/20
165.22.80.0/20
165.22.96.0/20
165.22.112.0/20
165.22.128.0/20
165.22.144.0/20
165.22.160.0/20
165.22.176.0/20
165.22.192.0/20
165.22.208.0/20
165.22.224.0/20
165.22.240.0/20
165.227.0.0/20
165.227.16.0/20
165.227.32.0/20
165.227.48.0/20
165.227.64.0/20
165.227.80.0/20
165.227.96.0/20
165.227.112.0/20
165.227.128.0/20
165.227.144.0/20
165.227.160.0/20
165.227.176.0/20
165.227.192.0/20
165.227.208.0/20
165.227.224.0/20
165.227.240.0/22
165.227.244.0/22
165.227.248.0/22
165.227.252.0/22
165.232.32.0/20
165.232.48.0/20
165.232.64.0/20
165.232.80.0/20
165.232.96.0/20
165.232.112.0/20
165.232.128.0/20
165.232.144.0/20
165.232.160.0/20
165.232.176.0/20
167.71.0.0/20
167.71.16.0/20
167.71.32.0/20
167.71.48.0/20
167.71.64.0/20
167.71.80.0/20
167.71.96.0/20
167.71.112.0/20
167.71.128.0/20
167.71.144.0/20
167.71.160.0/20
167.71.176.0/20
167.71.192.0/20
167.71.208.0/20
167.71.224.0/20
167.71.240.0/20
167.99.0.0/20
167.99.16.0/22
167.99.20.0/22
167.99.24.0/22
167.99.28.0/22
167.99.32.0/20
167.99.48.0/20
167.99.64.0/20
167.99.80.0/20
167.99.96.0/20
167.99.112.0/20
167.99.128.0/20
167.99.144.0/20
167.99.160.0/20
167.99.176.0/20
167.99.192.0/20
167.99.208.0/20
167.99.224.0/20
167.99.240.0/20
167.172.0.0/22
167.172.4.0/22
167.172.8.0/22
167.172.12.0/22
167.172.16.0/20
167.172.32.0/20
167.172.48.0/20
167.172.64.0/20
167.172.80.0/20
167.172.96.0/20
167.172.112.0/20
167.172.128.0/20
167.172.144.0/20
167.172.160.0/20
167.172.176.0/20
167.172.192.0/20
167.172.208.0/20
167.172.224.0/20
167.172.240.0/20
170.64.128.0/18
170.64.192.0/19
170.64.224.0/20
170.64.240.0/21
170.64.248.0/21
174.138.0.0/20
174.138.16.0/20
174.138.32.0/20
174.138.48.0/20
174.138.64.0/20
174.138.80.0/20
174.138.96.0/22
174.138.100.0/22
174.138.104.0/22
174.138.108.0/22
174.138.112.0/22
174.138.116.0/22
174.138.120.0/22
174.138.124.0/22
178.62.0.0/18
178.62.64.0/18
178.62.128.0/18
178.62.192.0/18
178.128.0.0/20
178.128.16.0/20
178.128.32.0/20
178.128.48.0/20
178.128.64.0/20
178.128.80.0/20
178.128.96.0/20
178.128.112.0/20
178.128.128.0/22
178.128.132.0/22
178.128.136.0/22
178.128.140.0/22
178.128.144.0/20
178.128.160.0/20
178.128.176.0/20
178.128.192.0/20
178.128.208.0/20
178.128.224.0/20
178.128.240.0/20
185.14.184.0/22
188.166.0.0/18
188.166.64.0/18
188.166.128.0/22
188.166.132.0/22
188.166.136.0/22
188.166.140.0/22
188.166.144.0/20
188.166.160.0/21
188.166.168.0/21
188.166.176.0/20
188.166.192.0/22
188.166.196.0/22
188.166.200.0/22
188.166.204.0/22
188.166.208.0/20
188.166.224.0/20
188.166.240.0/20
188.226.128.0/17
192.34.56.0/21
192.81.208.0/21
192.81.216.0/22
192.81.220.0/22
192.241.128.0/19
192.241.160.0/19
192.241.192.0/19
192.241.224.0/20
192.241.240.0/20
198.199.64.0/20
198.199.80.0/21
198.199.88.0/22
198.199.92.0/22
198.199.96.0/20
198.199.112.0/21
198.199.120.0/22
198.199.124.0/22
198.211.96.0/20
198.211.112.0/22
198.211.116.0/23
198.211.118.0/23
198.211.120.0/21
204.48.16.0/20
206.81.0.0/20
206.81.16.0/20
206.189.0.0/20
206.189.16.0/20
206.189.32.0/20
206.189.48.0/20
206.189.64.0/20
206.189.80.0/20
206.189.96.0/20
206.189.112.0/20
206.189.128.0/20
206.189.144.0/20
206.189.160.0/20
206.189.176.0/20
206.189.192.0/20
206.189.208.0/20
206.189.224.0/20
206.189.240.0/22
206.189.244.0/22
206.189.248.0/22
206.189.252.0/22
207.154.192.0/20
207.154.208.0/20
207.154.224.0/20
207.154.240.0/20
208.68.36.0/22
209.38.0.0/22
209.38.4.0/22
209.38.8.0/21
209.38.16.0/20
209.38.32.0/20
209.38.48.0/22
209.38.52.0/22
209.38.64.0/20
209.38.96.0/20
209.38.128.0/19
209.38.160.0/22
209.38.164.0/22
209.38.168.0/22
209.38.172.0/22
209.38.176.0/20
209.38.192.0/19
209.38.224.0/19
209.97.128.0/20
209.97.144.0/20
209.97.160.0/20
209.97.176.0/20
https://www.gstatic.com/ipranges/cloud.json

34.1.208.0/20
34.35.0.0/16
34.152.86.0/23
34.177.50.0/23
34.80.0.0/15
34.137.0.0/16
35.185.128.0/19
35.185.160.0/20
35.187.144.0/20
35.189.160.0/19
35.194.128.0/17
35.201.128.0/17
35.206.192.0/18
35.220.32.0/21
35.221.128.0/17
35.229.128.0/17
35.234.0.0/18
35.235.16.0/20
35.236.128.0/18
35.242.32.0/21
104.155.192.0/19
104.155.224.0/20
104.199.128.0/18
104.199.192.0/19
104.199.224.0/20
104.199.242.0/23
104.199.244.0/22
104.199.248.0/21
107.167.176.0/20
130.211.240.0/20
34.92.0.0/16
34.96.128.0/17
34.104.88.0/21
34.124.24.0/21
34.150.0.0/17
35.215.128.0/18
35.220.27.0/24
35.220.128.0/17
35.241.64.0/18
35.242.27.0/24
35.243.8.0/21
34.84.0.0/16
34.85.0.0/17
34.104.62.0/23
34.104.128.0/17
34.127.190.0/23
34.146.0.0/16
34.157.64.0/20
34.157.164.0/22
34.157.192.0/20
35.187.192.0/19
35.189.128.0/19
35.190.224.0/20
35.194.96.0/19
35.200.0.0/17
35.213.0.0/17
35.220.56.0/22
35.221.64.0/18
35.230.240.0/20
35.242.56.0/22
35.243.64.0/18
104.198.80.0/20
104.198.112.0/20
34.97.0.0/16
34.104.49.0/24
34.127.177.0/24
35.217.128.0/17
35.220.45.0/24
35.242.45.0/24
35.243.56.0/21
34.0.96.0/19
34.22.64.0/19
34.22.96.0/20
34.47.64.0/18
34.50.0.0/18
34.64.32.0/19
34.64.64.0/22
34.64.68.0/22
34.64.72.0/21
34.64.80.0/20
34.64.96.0/19
34.64.128.0/22
34.64.132.0/22
34.64.136.0/21
34.64.144.0/20
34.64.160.0/19
34.64.192.0/18
35.216.0.0/17
34.0.227.0/24
34.47.128.0/17
34.93.0.0/16
34.100.128.0/17
34.104.108.0/23
34.124.44.0/23
34.152.64.0/22
34.153.58.0/23
34.153.250.0/23
34.157.87.0/24
34.157.215.0/24
34.177.32.0/22
35.200.128.0/17
35.201.41.0/24
35.207.192.0/18
35.220.42.0/24
35.234.208.0/20
35.242.42.0/24
35.244.0.0/18
34.0.0.0/20
34.104.120.0/23
34.124.56.0/23
34.126.208.0/20
34.131.0.0/16
34.153.32.0/24
34.153.224.0/24
34.1.128.0/20
34.1.192.0/20
34.21.128.0/17
34.87.0.0/17
34.87.128.0/18
34.104.58.0/23
34.104.106.0/23
34.124.42.0/23
34.124.128.0/17
34.126.64.0/18
34.126.128.0/18
34.128.44.0/23
34.128.60.0/23
34.142.128.0/17
34.143.128.0/17
34.153.40.0/23
34.153.232.0/23
34.157.82.0/23
34.157.88.0/23
34.157.210.0/23
35.185.176.0/20
35.186.144.0/20
35.187.224.0/19
35.197.128.0/19
35.198.192.0/18
35.213.128.0/18
35.220.24.0/23
35.234.192.0/20
35.240.128.0/17
35.242.24.0/23
35.247.128.0/18
34.34.216.0/21
34.50.64.0/18
34.101.18.0/24
34.101.20.0/22
34.101.24.0/22
34.101.32.0/19
34.101.64.0/18
34.101.128.0/17
34.128.64.0/18
34.152.68.0/24
34.153.44.0/24
34.153.236.0/24
34.157.254.0/24
35.219.0.0/17
34.40.128.0/17
34.87.192.0/18
34.104.104.0/23
34.116.64.0/18
34.124.40.0/23
34.128.36.0/24
34.128.48.0/24
34.151.64.0/18
34.151.128.0/18
35.189.0.0/18
35.197.160.0/19
35.201.0.0/19
35.213.192.0/18
35.220.41.0/24
35.234.224.0/20
35.242.41.0/24
35.244.64.0/18
34.0.16.0/20
34.1.176.0/20
34.104.122.0/23
34.124.58.0/23
34.126.192.0/20
34.129.0.0/16
34.0.240.0/20
34.104.116.0/22
34.116.128.0/17
34.118.0.0/17
34.124.52.0/22
34.88.0.0/16
34.104.96.0/21
34.124.32.0/21
35.203.232.0/21
35.217.0.0/18
35.220.26.0/24
35.228.0.0/16
35.242.26.0/24
34.0.192.0/19
34.157.44.0/23
34.157.172.0/23
34.164.0.0/16
34.175.0.0/16
8.34.208.0/23
8.34.211.0/24
8.34.220.0/22
23.251.128.0/20
34.22.112.0/20
34.22.128.0/17
34.34.128.0/18
34.38.0.0/16
34.76.0.0/14
34.118.254.0/23
34.140.0.0/16
35.187.0.0/17
35.187.160.0/19
35.189.192.0/18
35.190.192.0/19
35.195.0.0/16
35.205.0.0/16
35.206.128.0/18
35.210.0.0/16
35.220.96.0/19
35.233.0.0/17
35.240.0.0/17
35.241.128.0/17
35.242.64.0/19
104.155.0.0/17
104.199.0.0/18
104.199.66.0/23
104.199.68.0/22
104.199.72.0/21
104.199.80.0/20
104.199.96.0/20
130.211.48.0/20
130.211.64.0/19
130.211.96.0/20
146.148.2.0/23
146.148.4.0/22
146.148.8.0/21
146.148.16.0/20
146.148.112.0/20
192.158.28.0/22
34.1.160.0/20
34.32.0.0/17
34.152.80.0/23
34.177.36.0/23
34.1.144.0/20
34.17.0.0/16
34.157.124.0/23
34.157.250.0/23
34.39.0.0/17
34.89.0.0/17
34.105.128.0/17
34.127.186.0/23
34.128.52.0/22
34.142.0.0/17
34.147.128.0/17
34.157.36.0/22
34.157.40.0/22
34.157.168.0/22
35.189.64.0/18
35.197.192.0/18
35.203.210.0/23
35.203.212.0/22
35.203.216.0/22
35.214.0.0/17
35.220.20.0/22
35.230.128.0/19
35.234.128.0/19
35.235.48.0/20
35.242.20.0/22
35.242.128.0/18
35.246.0.0/17
34.0.224.0/24
34.0.226.0/24
34.40.0.0/17
34.89.128.0/17
34.104.112.0/23
34.107.0.0/17
34.118.244.0/22
34.124.48.0/23
34.141.0.0/17
34.157.48.0/20
34.157.176.0/20
34.159.0.0/16
35.198.64.0/18
35.198.128.0/18
35.207.64.0/18
35.207.128.0/18
35.220.18.0/23
35.234.64.0/18
35.235.32.0/20
35.242.18.0/23
35.242.192.0/18
35.246.128.0/17
34.1.224.0/19
34.32.128.0/17
34.34.0.0/17
34.90.0.0/15
34.104.126.0/23
34.124.62.0/23
34.141.128.0/17
34.147.0.0/17
34.157.80.0/23
34.157.92.0/22
34.157.208.0/23
34.157.220.0/22
35.204.0.0/16
35.214.128.0/17
35.220.16.0/23
35.234.160.0/20
35.242.16.0/23
34.65.0.0/16
34.104.110.0/23
34.124.46.0/23
35.216.128.0/17
35.220.44.0/24
35.235.216.0/21
35.242.44.0/24
34.0.160.0/19
34.153.38.0/24
34.153.230.0/24
34.154.0.0/16
34.157.8.0/23
34.157.121.0/24
34.157.136.0/23
34.157.249.0/24
35.219.224.0/19
34.1.0.0/20
34.155.0.0/16
34.157.12.0/22
34.157.140.0/22
34.163.0.0/16
34.36.0.0/16
34.49.0.0/16
34.54.0.0/16
34.95.64.0/18
34.96.64.0/18
34.98.64.0/18
34.102.128.0/17
34.104.27.0/24
34.107.128.0/17
34.110.128.0/17
34.111.0.0/16
34.116.0.0/21
34.117.0.0/16
34.120.0.0/16
34.128.128.0/18
34.144.192.0/18
34.149.0.0/16
34.160.0.0/16
35.186.192.0/18
35.190.0.0/18
35.190.64.0/19
35.190.112.0/20
35.201.64.0/18
35.227.192.0/18
35.241.0.0/18
35.244.128.0/17
107.178.240.0/20
130.211.4.0/22
130.211.8.0/21
130.211.16.0/20
130.211.32.0/20
34.1.32.0/20
34.18.0.0/16
34.157.126.0/23
34.157.252.0/23
34.1.48.0/20
34.152.84.0/23
34.166.0.0/16
34.177.48.0/23
34.0.64.0/19
34.157.90.0/23
34.157.216.0/23
34.165.0.0/16
34.19.128.0/17
34.20.0.0/17
34.47.0.0/18
34.95.0.0/18
34.104.76.0/22
34.118.128.0/18
34.124.12.0/22
34.128.37.0/24
34.128.42.0/23
34.128.49.0/24
34.128.58.0/23
34.152.0.0/18
35.203.0.0/17
35.215.0.0/18
35.220.43.0/24
35.234.240.0/20
35.242.43.0/24
34.0.32.0/20
34.104.114.0/23
34.124.50.0/23
34.124.112.0/20
34.130.0.0/16
34.152.69.0/24
34.157.255.0/24
34.51.0.0/17
34.153.42.0/23
34.153.234.0/23
34.39.128.0/17
34.95.128.0/17
34.104.80.0/21
34.124.16.0/21
34.151.0.0/18
34.151.192.0/18
35.198.0.0/18
35.199.64.0/18
35.215.192.0/18
35.220.40.0/24
35.235.0.0/20
35.242.40.0/24
35.247.192.0/18
34.0.48.0/20
34.104.50.0/23
34.127.178.0/23
34.153.33.0/24
34.153.225.0/24
34.176.0.0/16
8.34.210.0/24
8.34.212.0/22
8.34.216.0/22
8.35.192.0/21
23.236.48.0/20
23.251.144.0/20
34.0.225.0/24
34.16.0.0/17
34.27.0.0/16
34.28.0.0/14
34.33.0.0/16
34.41.0.0/16
34.42.0.0/16
34.44.0.0/15
34.46.0.0/16
34.66.0.0/15
34.68.0.0/14
34.72.0.0/16
34.118.200.0/21
34.121.0.0/16
34.122.0.0/15
34.128.32.0/22
34.132.0.0/14
34.136.0.0/16
34.153.48.0/21
34.153.240.0/21
34.157.84.0/23
34.157.96.0/20
34.157.212.0/23
34.157.224.0/20
34.170.0.0/15
34.172.0.0/15
34.177.52.0/22
35.184.0.0/16
35.188.0.0/17
35.188.128.0/18
35.188.192.0/19
35.192.0.0/15
35.194.0.0/18
35.202.0.0/16
35.206.64.0/18
35.208.0.0/15
35.220.64.0/19
35.222.0.0/15
35.224.0.0/15
35.226.0.0/16
35.232.0.0/16
35.238.0.0/15
35.242.96.0/19
104.154.16.0/20
104.154.32.0/19
104.154.64.0/19
104.154.96.0/20
104.154.113.0/24
104.154.114.0/23
104.154.116.0/22
104.154.120.0/23
104.154.128.0/17
104.155.128.0/18
104.197.0.0/16
104.198.16.0/20
104.198.32.0/19
104.198.64.0/20
104.198.128.0/17
107.178.208.0/20
108.59.80.0/21
130.211.112.0/20
130.211.128.0/18
130.211.192.0/19
130.211.224.0/20
146.148.32.0/19
146.148.64.0/19
146.148.96.0/20
162.222.176.0/21
173.255.112.0/21
199.192.115.0/24
199.223.232.0/22
199.223.236.0/24
34.22.0.0/19
35.186.0.0/17
35.186.128.0/20
35.206.32.0/19
35.220.46.0/24
35.242.46.0/24
107.167.160.0/20
108.59.88.0/21
173.255.120.0/21
34.23.0.0/16
34.24.0.0/15
34.26.0.0/16
34.73.0.0/16
34.74.0.0/15
34.98.128.0/21
34.118.250.0/23
34.138.0.0/15
34.148.0.0/16
34.152.72.0/21
34.177.40.0/21
35.185.0.0/17
35.190.128.0/18
35.196.0.0/16
35.207.0.0/18
35.211.0.0/16
35.220.0.0/20
35.227.0.0/17
35.229.16.0/20
35.229.32.0/19
35.229.64.0/18
35.231.0.0/16
35.237.0.0/16
35.242.0.0/20
35.243.128.0/17
104.196.0.0/18
104.196.65.0/24
104.196.66.0/23
104.196.68.0/22
104.196.96.0/19
104.196.128.0/18
104.196.192.0/19
162.216.148.0/22
34.21.0.0/17
34.48.0.0/16
34.85.128.0/17
34.86.0.0/16
34.104.60.0/23
34.104.124.0/23
34.118.252.0/23
34.124.60.0/23
34.127.188.0/23
34.145.128.0/17
34.150.128.0/17
34.157.0.0/21
34.157.16.0/20
34.157.128.0/21
34.157.144.0/20
35.186.160.0/19
35.188.224.0/19
35.194.64.0/19
35.199.0.0/18
35.212.0.0/17
35.220.60.0/22
35.221.0.0/18
35.230.160.0/19
35.234.176.0/20
35.236.192.0/18
35.242.60.0/22
35.243.40.0/21
35.245.0.0/16
34.1.16.0/20
34.157.32.0/22
34.157.160.0/22
34.162.0.0/16
34.104.56.0/23
34.127.184.0/23
34.161.0.0/16
35.206.10.0/23
34.0.128.0/19
34.157.46.0/23
34.157.174.0/23
34.174.0.0/16
34.19.0.0/17
34.53.0.0/17
34.82.0.0/15
34.105.0.0/17
34.118.192.0/21
34.127.0.0/17
34.145.0.0/17
34.157.112.0/21
34.157.240.0/21
34.168.0.0/15
35.185.192.0/18
35.197.0.0/17
35.199.144.0/20
35.199.160.0/19
35.203.128.0/18
35.212.128.0/17
35.220.48.0/21
35.227.128.0/18
35.230.0.0/17
35.233.128.0/17
35.242.48.0/21
35.243.32.0/21
35.247.0.0/17
104.196.224.0/19
104.198.0.0/20
104.198.96.0/20
104.199.112.0/20
34.20.128.0/17
34.94.0.0/16
34.102.0.0/17
34.104.64.0/21
34.108.0.0/16
34.118.248.0/23
34.124.0.0/21
35.215.64.0/18
35.220.47.0/24
35.235.64.0/18
35.236.0.0/17
35.242.47.0/24
35.243.0.0/21
34.22.32.0/19
34.104.52.0/24
34.106.0.0/16
34.127.180.0/24
35.217.64.0/18
35.220.31.0/24
35.242.31.0/24
34.16.128.0/17
34.104.72.0/22
34.118.240.0/22
34.124.8.0/22
34.125.0.0/16
35.219.128.0/18
34.37.0.0/16
34.128.46.0/23
34.128.62.0/23
5.9.0.0/16
5.75.128.0/17
5.161.0.0/21
5.161.164.0/22
5.161.168.0/21
5.161.238.0/23
5.222.0.0/15
23.88.0.0/17
37.27.0.0/16
45.145.227.0/24
46.4.0.0/16
46.62.128.0/17
49.12.0.0/15
65.21.0.0/16
65.108.0.0/15
77.42.0.0/17
78.46.0.0/15
78.138.62.0/24
85.10.192.0/18
88.99.0.0/16
88.198.0.0/16
89.167.0.0/17
91.99.0.0/16
91.107.128.0/17
91.190.240.0/21
91.233.8.0/22
94.130.0.0/16
95.216.0.0/15
116.202.0.0/15
128.140.0.0/17
135.181.0.0/16
136.243.0.0/16
138.199.128.0/17
138.201.0.0/16
142.132.128.0/17
144.76.0.0/16
148.251.0.0/16
157.90.0.0/16
157.180.0.0/17
159.69.0.0/16
162.55.0.0/16
167.233.0.0/16
167.235.0.0/16
168.119.0.0/16
171.25.225.0/24
176.9.0.0/16
178.63.0.0/16
178.212.75.0/24
185.12.64.0/22
185.50.120.0/23
185.107.52.0/22
185.126.28.0/22
185.157.83.0/24
185.157.176.0/22
185.171.224.0/22
185.189.228.0/22
185.213.45.0/24
185.216.237.0/24
185.226.99.0/24
185.228.8.0/23
185.242.76.0/24
185.253.111.0/24
188.34.128.0/17
188.40.0.0/16
188.245.0.0/16
193.25.170.0/23
193.110.6.0/23
193.163.198.0/24
194.42.180.0/22
194.42.184.0/22
194.62.106.0/24
195.60.226.0/24
195.201.0.0/16
195.248.224.0/24
197.242.84.0/22
201.131.3.0/24
204.29.146.0/24
213.133.96.0/19
213.232.193.0/24
213.239.192.0/18
216.55.108.0/22
You can often see your logs dominated by their IPs. Block all of ahrefs listed IPs.
On any random day, a lot of sites will receive quite a bit of traffic and high frequency queries from ahrefs. If you aren't using their SEO service there is no point in allowing their traffic.

54.36.148.0/24
54.36.149.0/24
195.154.122.0/24
195.154.123.0/24
195.154.126.0/24
195.154.127.0/24
51.222.253.0/26
167.114.139.0/24
54.39.6.0/24
54.39.136.0/24
142.44.233.0/24
54.39.0.0/24
51.161.37.0/24
142.44.220.0/24
54.39.210.0/24
54.39.203.0/24
148.113.130.0/24
51.222.95.0/24
51.161.65.0/24
54.39.89.0/24
15.235.27.0/24
148.113.128.0/24
15.235.96.0/24
142.44.228.0/24
142.44.225.0/24
51.222.168.0/24
15.235.98.0/24
54.37.118.64/27
51.75.236.128/27
92.222.108.96/27
51.68.247.192/27
176.31.139.0/27
5.39.1.224/27
92.222.104.192/27
37.59.204.128/27
94.23.188.192/27
5.39.109.160/27
51.195.244.0/24
198.244.168.0/24
198.244.226.0/24
51.195.183.0/24
198.244.183.0/24
54.38.147.0/24
198.244.240.0/24
198.244.242.0/24
51.89.129.0/24
51.195.215.0/24
168.119.68.0/24
198.244.186.0/24
202.94.84.0/24
168.119.64.0/24
168.119.65.0/24
"Learn how to install any operating system—Linux, BSD, Windows, and more—on a physical drive from within Windows using VMware Workstation! This step-by-step guide shows you how to set up any OS on an external or internal drive and boot directly from it. Whether you're looking to dual boot or completely migrate from Windows to a new OS, this tutorial covers everything you need. You don’t need a bootable USB drive—everything is done directly through VMware Workstation on Windows.
🔹 What you’ll learn:
🔹 Tools needed:
Youtube Video of Installing Linux to a physical drive from VMWare Workstation in Windows.
In this example there is a disk 0 and disk 1. The easiest way is to verify by size, however if both drives are similar in size then the better way is to right click on each disk and click "Properties"

As we can see below Disk 0 is a WDC drive ( Western Digital ), if we know there's no other Western Digital drive and this is the one we want to install our OS to, choose this drive.

Open VMWare Workstation as "Administrator" and click "File -> New Virtual Machine" to create a new VM.

This just has the advantage of allowing us to have the Physical Drive attached initially as the only drive in VMWare rather than going back and modifying the storage settings/HDDs later on.

In our example we are installing Ubuntu 64 bit, it's important to choose the correct OS type and even more important to choose the right architecture (eg 64 bit). This becomes more apparent later on if the intended computer you want to boot your installed OS on uses EFI (EFI mode can only be enabled easily when there is the 64-bit architecture selected).

This part is crucial and critical, if you mess this up you could delete your crypto keys or family photos by accident! If possible make sure all other drives/storage devices are disconnected or disabled by this time.

Once again we choose PhysicalDrive0 because it corresponds to the identified "Disk 0" in Disk Management. You need to verify your physical drive number or you may wipe your data on an unintended drive.

After this point all the defaults are normally fine (continue to click next through the menu to create the VM).
If your target device will be booting by EFI you need to edit your VM by going to Settings and then "Options" and "Advanced" and choose UEFI as the boot mode. This is not necessary if you will be booting by MBR (however many newer systems will only boot EFI)

Install your OS like it's a normal physical machine, once the install is completed, power off the VM and you can now boot the drive you installed to on the same or other computer.
Your frontend CDN (eg. Cloudflare or even your own load balancer/proxy) must be sending the X-Forwarded-For and you must be running Apache on the backend.
This solves the problem where your logs and services will only see the proxy/CDN IP and not the real client IP.
a2enmod remoteip
Edit this file: /etc/apache2/conf-enabled/remoteip.conf
Make your entries like below (you can add more lines of RemoteIPTrustedProxy as needed).
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 1.2.3.4
You should now find that the client IP is what is shown in the Apache logs and REMOTE_ADDR variable. Remember to update the remoteip.conf with the current IPs of your load balancer/CDN service.
Note that most versions of mod_rpaf at least in newer Debian/Ubuntu seem to be broken and DO NOT work. The symptom will be that your Apache logs have the correct client IP but say in PHP the REMOTE_ADDR variable will be that of the proxy/loadbalancer/cloudflare even though you have added the correct IP's in the RPAF_ProxyIPs line. It appears the project is no longer maintained and working in newer Apache/PHP.
Here is some discussion about mod_rpaf in recent Debian/Ubuntu
mod_rpaf will fix all of this
This solution transparently sets the real IP of the client for Apache and any services that rely on the REMOTE_ADDR without having to modify any code.
#install the devel tools and gcc for your distro and git
yum -y install httpd-devel gcc git
#let's git the mod_rpaf module (most distros don't have this as a package installable module) so we have to build it ourselves
cd ~
git clone https://github.com/gnif/mod_rpaf.git
cd mod_rpaf
#let's compile and install the mod_rpaf.c code
apxs -i -c -n rpaf mod_rpaf.c
#edit the httpd.conf for Apache to enable mod_rpaf, be sure to set the RPAF_ProxyIPs to whatever IPs your CDN/proxy uses otherwise the original CDN IP will still be presented to Apache
Edit the two example of IPs below to be your CDN/Proxy/LoadBalancer IPs (if you only have 1 IP then only put 1 there).
LoadModule rpaf_module modules/mod_rpaf.so
RPAF_Enable On
RPAF_Header X-Forwarded-For
RPAF_ProxyIPs 1.2.3.4 5.6.7.8
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
systemctl restart httpd
#now remove gcc and httpd-devel and git for security reasons
yum -y remove gcc httpd-devel git
When using varnish you need to add on the IP 127.0.0.1 to the RPAF_ProxyIPs line or it will break your logs, or in otherwords Varnish requests will all show up to Apache as 127.0.0.1 instead of the real client IP.
yum update
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable
or
subscription-manager repos --disable=
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=
Cannot find a valid baseurl for repo: base/7/x86_64
The issue is that CentOS 7 went EOL in June 2024, but you can still access the packages in the CentOS vault for the last 7.9.2009 release for testing purposes or to create an environment to update to AlmaLinux or another newer distro.
Solution - Replace the contents of the Base Repo file "/etc/yum.repos.d/CentOS-Base.repo" as below:
[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum install centos-release-scl
/etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://vault.centos.org/7.9.2009/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centos-sclo-sclo-source]
name=CentOS-7 - SCLo sclo Source
baseurl=http://vault.centos.org/7.9.2009/sclo/Source/sclo/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
/etc/yum.repos.d/CentOS-SCLo-scl
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://vault.centos.org/7.9.2009/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centos-sclo-rh-source]
name=CentOS-7 - SCLo rh Source
baseurl=http://vault.centos.org/7.9.2009/sclo/Source/rh/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
A lot of times you may see when installing packages that apt will recommend packages, a lot of times when doing things like upgrading or install a new kernel, it is very smart at recommending related packages (eg. modules, headers, extras etc..)

--install-suggests
sudo apt install --install-suggests linux-image-5.15.0-119-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
linux-objects-nvidia-510-4.15.0-188-generic linux-signatures-nvidia-4.15.0-188-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
fdutils linux-doc linux-headers-5.15.0-119-generic linux-hwe-5.15-headers-5.15.0-119 linux-modules-5.15.0-119-generic linux-modules-extra-5.15.0-119-generic
Suggested packages:
linux-hwe-5.15-tools
The following NEW packages will be installed:
fdutils linux-doc linux-headers-5.15.0-119-generic linux-hwe-5.15-headers-5.15.0-119 linux-image-5.15.0-119-generic linux-modules-5.15.0-119-generic linux-modules-extra-5.15.0-119-generic
Just export these variables:
export http_proxy="socks5://127.0.0.1:1234"
export https_proxy="socks5://127.0.0.1:1234"
The above example uses a socks 5 proxy at localhost and port 1234.
This is a great way to improve performance of some activities for things like package installation, especially if your routing is not ideal to the repos.
Do you have a PDF that was too large after merging using convert / ImageMagick?
Use gs or ghostscript as below, specify the output file and also the input file.
In the example below the output file is "outputfile-resized.pdf" and the input file is "original-pdf.pdf". Change the input file to the name of your pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH -sOutputFile=outputfile-resized.pdf original-pdf.pdf
For example the above method took a pdf from 12MB to about 500KB with no noticeable quality loss.
In some cases with very high quality PDF's with images (eg. 300dpi), you may only save 20-30% which may not fit the Inbox of some e-mail providers still.
The next option is to change your DPI to be 150:
-dColorImageResolution=150
Add the above flag and adjust the 150 to be whatever dpi you need. The above example took a 47MB image down to 6.5MB.
qemu: could not load PC BIOS 'bios-256k.bin'
The file exists here:
/usr/share/qemu/bios-256k.bin
It is symlinked to here:
/usr/share/seabios/bios.bin
-bios /usr/share/qemu/bios-256k.bin
If you just have 1 disk per node/testing/POC then you can reduce the overall disk usage during install as below:
.png)
In this example the disk is 60G and I set max size as 20G. This then leaves 40G remaining of unpartitioned space that you could later use for other things like Ceph, DRBD etc...

Hyper-V uses obscure virtual hardware, you can enable the FB device for Hyper-V but if you just need text/console to work just compile this option:
Device Drivers --->
Graphics support --->
<*> Framebuffer Devices --->
<*> Simple framebuffer support
If you have ever seen a system where terminal in the GUI closes instantly and/or you cannot SSH to the server/machine.
mount -t devtmpfs none /dev
mount -t devpts none /dev/pts
As a fun test in an old/unloved dual CPU Xeon system, I removed the fan for the heatsink and after 1.5 hours, the system was completely stable and had surprisingly not crashed, despite exceeding or hitting the critical thermal levels

If you are sure the binary/program exists, it could be that your PATH variable is broken or not set.
Just do this to set most of the common paths:
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
There's no risk to the above, because it just takes your current PATH variable and adds more to what is already existing.
To make this permanent you can add this to your ~/.bashrc file
In a lot of distros, vdpau which accelerates video through the GPU is often not installed even in recent distros. This will result in Firefox with Youtube dropping frames when you check the "Stats for Nerds" and to the eye as jerky or slower video playback due to the dropped frames.
Some sites will say that because you are watching VP09 that there is no GPU support, but with vdpau installed and enabled, many GPUs will still be able to use hardware decoding for 4K Youtube videos. Information on this is spotty but you can clearly see the GPU utilization going up when watching Youtube GPUs, so the GPU is doing something to decode the video.
This will make you think that your GPU is not capable of playing even 1080P sometimes or 4K even though it is, as in many cases it is your CPU doing the video decoding and a lot of times some CPUs cannot reliably or consistently support 4K decoding in Youtube.
sudo apt install vdpau-driver-all
I was surprised that this helped even on even much older cards including older Nvidia GPUs.
After doing the above and restarting Firefox, the stats for nerds showed 0 dropped frames when watching 4K, compared to some dropped frames at 1080P and many dropped at 4K before enabling vdpau.
.png)
One caveat that it may be that your video card is still too slow and may not be able to support decoding Youtube in fullscreen at certain resolutions. You may see the above but then on a weaker GPU, may find that it does drop frames when running fullscreen.
Sometimes frames will only drop when having the Stats for nerds on top, or the progress bar open.
In general VP09 full support and decoding is not guaranteed to work well or at all, and unfortunately Youtube has not stuck to normal standards that most GPUs support like H265 or H264, XVID, DIVX etc...
https://support.mozilla.org/en-US/kb/firefox-4k-ultra-high-definition-youtube-videos
https://www.reddit.com/r/linuxquestions/comments/ugp19e/help_playing_back_4k60fps_youtube_on_linux/
This example is using RTL8821AU chipset from a TP-Link T2U Plus USB adapter and other similar ones should work the same.
Here's how to get this chipset RTL8821AU working in Linux.
Here's how to get RTL8812 and RTL8822 working in Linux.
With these settings I can get very good speeds of 300+ mbit per second and for some reason the upload speed is faster than download.
Change wlan0 if your adapter has a different device name and make sure you set your WPA passphrase or change it.
interface=wlan0
# "a" simply means 5GHz
#driver=cfg80211
hw_mode=a
# the channel to use, 0 means the AP will search for the channel with the least interferences (ACS)
channel=36
#ieee80211d=1
country_code=US
ieee80211n=1
ht_capab=[HT40+][HT40-][SHORT-GI-20][SHORT-GI-40][MAX-AMSDU-7935]
#the below doesn't work hostapd wouldn't start
#ht_capab=[HT40+][HT40-][SHORT-GI-20][SHORT-GI-40][RX-STBC1][MAX-AMSDU-7935]
# 802.11ac support
ieee80211ac=1
wmm_enabled=1
#vht_capab=[MAX-MPDU-11454][SHORT-GI-80][HTC-VHT]
vht_capab=[MAX-MPDU-11454][SHORT-GI-80][RX-STBC-1][HTC-VHT][MAX-A-MPDU-LEN-EXP7]
#optimize?
beacon_int=100
dtim_period=2
max_num_sta=32
macaddr_acl=0
rts_threshold=2347
fragm_threshold=2346
#end optimize
ssid=rttWirelessInternet
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=YOURWirelessInSecurePasswordHere
#you want to disable PMF if you find your clients don't connect although it is less secure and subjects you to deauth attacks
ieee80211w=0
How to enable 80mhz mode:
vht_capab=[MAX-MPDU-11454][SHORT-GI-80][RX-STBC-1][HTC-VHT][MAX-A-MPDU-LEN-EXP7][VHT80]
vht_oper_chwidth=1
If you are using one of the RTL8xx drivers follow this guide so 80mhz mode works:
https://realtechtalk.com/RTL88X_Series_80Mhz_hostapd_mode_for_Linux_Debian_Kali-2646-articles
#WPS stuff
# Enable control interface for PBC/PIN entry
wpa_psk_file=/etc/hostapd/hostapd.psk
ctrl_interface=/var/run/hostapd
eap_server=1
wps_state=2
ap_setup_locked=1
wps_pin_requests=/var/run/hostapd.pin-req
config_methods=label display push_button keypad
#WPS model info stuff change to suit your needs
device_name=Your Device Name
manufacturer=Company
model_name=Model
model_number=ModelNum
touch /etc/hostapd/hostapd.psk
systemctl restart hostapd
hostapd_cli wps_pbc
Then you should get this and your device should be able to connect now.
Once you see the below, the device has 2 minutes to connect.
Selected interface 'wlan0'
OK
This is certainly a poor design, as you can read many seasoned admins who have updated their iDRAC only to have it killed. One possible cause is not by doing all the incremental updates, doing updates from an old iDRAC to one many revisions newer is a sure way to kill things, but even then there is no guarantee based on the amount of failures.
List of threads of people's dead iDRAC's:
https://www.reddit.com/r/homelab/comments/a49b4y/r720_idrac_help/?rdt=40792
https://www.reddit.com/r/homelab/comments/960wx8/dell_r720_idrac_recovery/
https://community.spiceworks.com/t/alert-idrac-not-responding-rebooting/776991
The first solution is don't mass update, as we've seen entire datacenters or racks full of Dell machines with dead iDRAC due to mass update attempts. It is likely not practical to do this fix on a wide scale unless you can migrate the applications to another facility or rack as this requires the servers to be pulled off the rack or at least pulled by the rails and to open the case of course.
You will first need a USB to TTL adapter like this Amazon affil link.
Another successful recovery: http://blog.ignoranthack.me/?p=86
You will see Dell themselves advising to replace the motherboard, but in many cases by connecting to the UART below with a USB to TTL cable, you can tell the iDRAC to reflash from the SDCARD image.
Based off this example of a Dell R720, we can see the UART pins which are labelled by this github user.
This area is at the back right of the server (if looking from the server from the front) and will require you to remove the riser cage to access this area.
Be sure to use the correct pins below (remember the TX side of the TTL goes to the RX side of the UART and the the RX side of the TTL goes to the TX side of the UART). If in doubt, use a multimeter to make sure you aren't connecting to the wrong pins/getting voltage where you shouldn't be.

I have seen this occur on some servers, I am not sure how it was done like this but the SD Card came formatted as the root drive, without any partition. It seems that U-Boot recovery DOES NOT like this, or the fact that it is a 16GB Card even though it is from Dell.
UTIL RECOVER:Transport:sd TargetMMC:EMMC File:firmimg.d7
UTIL RECOVER:ERROR:Could not locate 'firmimg.d7' in FAT or EXT2 file system.
If you get the errors above and you are sure the file exists, then it is worth doing the following.
1.) Backup all files from the SD Card.
2.) Completely wipe the card.
3.) Format a single partition as 2GB as ext2 (ext2 not ext3 or ext4 or it won't work as the environment does not have the kernel modules to load anything but FAT and EXT2).
Sometimes you may need to go through 2 rounds of bootup procedure by hitting all the annoying keys to get the server booted normally for this to work.
Connect using minicom or screen and run these commands:
screen /dev/ttyUSB0 115200
The connection speed is crucial, otherwise you will see nothing or garbage characters.
If all goes well you should see like below.

Make sure you have the file firmimg.d7 or whatever the name one is from the iDRAC firmware on the SD card that inserts at the front of the server.
util recover -emmc -from sd -f firmimg.d7 -noreset -clear
Some versions will not have this -from_sd option
iDRAC8=> util recover -emmc -from_sd -f firmimg.d6 -noreset -clear
util recover:mcgetopt:ERROR: option "-from_sd" was not found.
Then once the above completes do this:
util reset
If you see a shell prompt like below (SH7757), you will need to short the DBG pins in the image from earlier.
Use a paper clip to short the two pins shown above as the interrupt/reboot pins in the diagram above.

U-Boot 2009.08 (Mar 10 2012 - 02:52:09) Avocent (0.0.3) EVB, Build: jenkins-12G_iDRAC_Releases-402
CPU: SH-4A
BOARD: R0P7757LC00xxRL (C0 step) board
BOOT: Secure, HRK generated
DRAM: 240MB
(240MB of 256MB total DRAM is available on U-Boot)
ENV: Using primary env area.
In: serial
Out: serial
Err: serial
PCIe: Bridge loaded with 0x18000 bytes
WDT2: Booted Lower Vector, 'uboot1'
sh_mmcif: 0, sh-sdhi: 1
Net: sh_eth.0, sh_g_eth.0
INFO: 00:002 Start-up -to- util_idrac_main()
INFO: 00:004 U-Boot 2009.08 (Mar 10 2012 - 02:52:09) Avocent (0.0.3) EVB
INFO: 00:007 U-Boot checkin date(03-02-2012) Version(1.0.175)
INFO: 00:006 iDRAC PPID <NULL>
INFO: 00:003 SPI NOR init 4096 KiB N25Q032 bus=0 cs=0, speed=1000000, mode=3
INFO: 00:007 SH-4A Product: Major Ver=0x31 Minor Ver=0x13 C3 Little endian
Family=0x10 Major Ver=0x30 Minor Ver=0x0b
PASS: 00:016 Dedicated monolithic mgmt NIC disabled
INFO: 00:128 BCM54610 OUI=0x3fffff Model=0x3f Revision=0x0f PhyAddr=1
INFO: 00:362 SD CARD: Device: sh-sdhi Manufacturer ID: 41 OEM: 3432
Name: DELL1 Tran Speed: 25000000 Rd Block Len: 512
SD version 2.0 High Capacity: Yes Capacity: -843055104
INFO: 00:059 EMMC: Device: sh_mmcif Manufacturer ID: 90 OEM: 14a
Name: HYNIX Tran Speed: 25000000 Rd Block Len: 512
MMC version 4.0 High Capacity: Yes Capacity: 0
INFO: 00:019 CPLD: Major Ver=0x1 Minor Ver=0x0 Maint Ver=0x3
Planar: Type=0x02 Rev=0x8 Rework=0x8 Scratch/PathRetry=0x00
PASS: 00:013 Coin cell detected good, AD=0x397 low water=0x2c1
PASS: 00:008 PCIe C0 Ver=0.13 MCTP en, CRC=0x19592849 @0x8efbf3a8 cnt=0x18000
INFO: 00:007 Init PCIe mailbox(PCIe 0xFFEE0150=0x40010000)
INFO: 00:006 mode=normal
INFO: 00:002 reset_cause=ac
PASS: 00:005 Booted Lower Vector, 'uboot1' wdt2cnt=0
INFO: 00:005 wdt0cnt=0
PASS: 00:003 Clear CH1/CH2, clear 4K shared memory@0xffcaa000 on AC power up
PASS: 00:007 SMR0 no sermux env, default 0xd4
INFO: 00:004 GRACR=0x3c HISEL=0x00 SIRQCR5_D=0x03 SIRQCR6_D=0x01 LADMSK0=0xff2
MRSTCR0=0xfedffe7f MRSTCR1=0xfff3ff0f MRSTCR2=0x7f80feff
BARMAP=0x1 BCR=0x85000000 NCER=0x01fc NCMCR=0x0006 NCCSR=0x0303
PASS: 00:021 etherc0=78:45:C4:F6:88:68
getherc0=78:45:C4:F6:88:69
INFO: 00:010 Fan logic for monolithic planar type 2
fan1 - def 0000 1fff 3d fan2 - def 0000 1fff 3d
fan3 - def 0000 1fff 3d fan4 - def 0000 1fff 3d
fan5 - def 0000 1fff 3d fan6 - def 0000 1fff 3d
fan7 - def 0000 1fff 3d fan8 - def 0000 1fff 3d
INFO: 00:076 Env and backup CRC'ed ok
*** no text signature found ***
INFO: 00:536 Sync eMMC/SPI NOR/Alternate u-boot images
PASS: 00:258 Current u-boot1 1.0.175 verified with 'ubootN'
Trailer Struct - Missing start token, exp=0xc0de1111 rec=0x0
U-boot2 in sync with u-boot1 1.0.175
PASS: 03:607 Verify OS Images N: CRC32 OK: Kernel=0x4d21804a Rootfs=0x40007db7
PASS: 00:008 Boot device=emmc Boot partition1/N
Boot Path Retry:P1/N=0 P5/N-1=0
INFO: 00:000 05:198
WDT2: Disabled
Initialization complete, proceed with boot
*** no text signature found ***
No. Device
---------------------
1 EVB SD/MMC
4 FLASH
Current Device ==> 1
OS_WDT0_EN:180 seconds, Re-load ILRAM:
Boot Path Retry:P1/N=0 P5/N-1=0
Copying kernel image ... OK
## Booting kernel from Legacy Image at 82000000 ...
Image Name: sh-linux
Image Type: SuperH Linux Kernel Image (gzip compressed)
Data Size: 2535377 Bytes = 2.4 MB
Load Address: 80001000
Entry Point: 80002000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
WDT2: Disable in do_bootm_linux()
sh_eth_init
Monolithic/DRB
init started: BusyBox v1.18.4 (2012-03-10 03:35:27 UTC)
starting pid 415, tty '': '/etc/init.d/rcS'
waitfor: pid 415 ...
setting net.ipv6.conf.default.accept_dad based on kernel bootup option
enable normal accept DAD for ipv6
Sat Jan 1 00:00:01 UTC 2000 To execute command __source /etc/sysapps_script/I_1000_mountfs.sh__
Sat Jan 1 00:00:03 UTC 2000 To execute command __source /etc/sysapps_script/I_1001_trigwdt.sh__
<========= Start H/W watchdog first... =========>
Sat Jan 1 00:00:03 UTC 2000 To execute command __source /etc/sysapps_script/I_1100_nfs.sh__
Sat Jan 1 00:00:03 UTC 2000 To execute command __source /etc/sysapps_script/I_1105_ps.sh__
XXXXXX /dev/mmcblk0p11
/dev/mmcblk0p11: recovering journal
fsck.ext3: Attempt to read block from filesystem resulted in short read while trying to re-open /dev/mmcblk0p11
e2fsck: io manager magic bad!
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext3: Attempt to read block from filesystem resulted in short read while trying to open /dev/mmcblk0p11
Could this be a zero-length partition?
mount: mounting /dev/mmcblk0p11 on /flash/data0 failed: Invalid argument
mounting private storage fail, formatting partition
/etc/init.d/rcS: /etc/sysapps_script/I_1105_ps.sh: line 29: mkfs.ext3: Input/output error
/etc/init.d/rcS: /etc/sysapps_script/I_1105_ps.sh: line 29: tune2fs: Input/output error
mount: mounting /dev/mmcblk0p11 on /flash/data0 failed: Invalid argument
Sat Jan 1 00:00:04 UTC 2000 To execute command __source /etc/sysapps_script/I_1106_clear_ps.sh__
Sat Jan 1 00:00:04 UTC 2000 To execute command __source /etc/sysapps_script/I_1150_SYS_Drv.sh__
insmod: can't insert '/lib/modules/aess_eventhandlerdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_kcsdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_biospostdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_gpiodrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_sgpiodrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_dynairqdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_i2c_hwctrldrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_i2cdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_spi1drv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_pecisensordrv.ko': Input/output error
insmod: can't insert '/lib/modules/cryptodev.ko': Input/output error
insmod: read error from '/lib/modules/sh_tsip.ko': Input/output error
insmod: can't insert '/lib/modules/sh_tsip.ko': Input/output error
insmod: can't insert '/lib/modules/aess_fansensordrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_pwmdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_timerdrv.ko': Input/output error
insmod: can't insert '/lib/modules/dell_cplddrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_rspidrv.ko': Input/output error
insmod: can't insert '/lib/modules/dell_fpdrv.ko': Input/output error
insmod: can't insert '/lib/modules/aess_adcsensordrv.ko': Input/output error
insmod: can't insert '/lib/modules/VKCSDriver.ko': Input/output error
insmod: can't insert '/lib/modules/aess_memdrv.ko': Input/output error
insmod: read error from '/lib/modules/sh_pbi.ko': Input/output error
insmod: can't insert '/lib/modules/sh_pbi.ko': Input/output error
Sat Jan 1 00:00:04 UTC 2000 To execute command __source /etc/sysapps_script/I_1170_mknode.sh__
Sat Jan 1 00:00:05 UTC 2000 To execute command __/etc/sysapps_script/config_lib_init.sh__
mounting Platform Data 1 partition
mount: mounting /dev/mmcblk0p9 on /tmp/pd0/ failed: Input/output error
/etc/sysapps_script/config_lib_init.sh: line 28: /etc/default/ipmi/getsysid: not found
mkdir: can't create directory '/flash/data0/config/': Read-only file system
/etc/sysapps_script/config_lib_init.sh: cd: line 38: can't cd to /flash/data0/config/
ln: ./lmcfg.txt: Read-only file system
ln: ./platcfggrp.txt: Read-only file system
ln: ./platcfgfld.txt: Read-only file system
ln: ./cfgfld.txt: Read-only file system
ln: ./cfggrp.txt: Read-only file system
ln: ./gencfggrp.txt: Read-only file system
ln: ./gencfgfld.txt: Read-only file system
ln: ./altdefaults.txt: Read-only file system
cp: can't stat '/tmp/pd0/network_config/Orca/iDRACnet.default': No such file or directory
cp: can't stat '/tmp/pd0/network_config/Orca/NICSelection.sh': No such file or directory
Sat Jan 1 00:00:06 UTC 2000 To execute command __source /etc/sysapps_script/I_1160_OSINET.sh__
Sat Jan 1 00:00:06 UTC 2000 To execute command __source /etc/sysapps_script/I_1200_etc_defaults.sh__
cp: can't create '/flash/data0/etc/hosts': Read-only file system
mkdir: can't create directory '/flash/data0/sysconfig': Read-only file system
mkdir: can't create directory '/flash/data0/ipsec': Read-only file system
/etc/sysapps_script/network_dev_init.sh: line 34: /tmp/pd0/ipmi/getsysid: not found
cp: can't create '/flash/data0/etc/hosts': Read-only file system
Sat Jan 1 00:00:06 UTC 2000 To execute command __source /etc/sysapps_script/I_1210_sysklog_syslogd.sh__
mkdir: can't create directory '/var/log/raclogd/': No such file or directory
touch: /var/log/raclogd/raclog: No such file or directory
chmod: /var/log/raclogd/raclog: No such file or directory
/etc/init.d/rcS: /etc/sysapps_script/I_1210_sysklog_syslogd.sh: line 16: /etc/sysapps_script/syslog.sh: Input/output error
Sat Jan 1 00:00:07 UTC 2000 To execute command __source /etc/sysapps_script/I_trab_asdf.sh__
insmod: read error from '/lib/modules/trab.ko': Input/output error
insmod: can't insert '/lib/modules/trab.ko': Input/output error
Sat Jan 1 00:00:07 UTC 2000 To execute command __source /etc/sysapps_script/I_usb_drv.sh__
NOTICE: Not full features configuration - kbdmouse not operational
insmod: can't insert '/lib/modules/g_r8a66597_udc.ko': Input/output error
failed load of g_r8a66597_udc
Sat Jan 1 00:00:07 UTC 2000 To execute command __source /etc/sysapps_script/I_video_drv.sh__
insmod: can't insert '/lib/modules/aess_video.ko': Input/output error
waitfor: pid 415, wpid 415
Please press Enter to activate this console. ^[[5~^[[5~
starting pid 550, tty '': '-/bin/sh'
iDRAC8=> util recover
UTIL RECOVER:Transport:tftp TargetMMC:EMMC File:firmimg.d7
UTIL RECOVER:Loading file "firmimg.d7" from TFTP server IP "192.168.0.100"
reset PHY of sh_g_eth.0
sh_eth: phy reset timeout
sh_eth: phy config timeout
UTIL RECOVER:ERROR:TFTP load.
UTIL FAIL
iDRAC8=> util help
Available "util" subcommands:
evc [-en
evc [-rise] [-fall] [-monitor]
fan [-set
fan [-init]
flash [-sd | -spi | -emmc]
[-b
iDRAC8=>
iDRAC8=> util recover -emmc -from sd -f firmimg.d6 -noreset -clear
util recover:mcgetopt:ERROR: option "-clear" was not found.
UTIL FAIL
iDRAC8=>
iDRAC8=> util recover -emmc -from sd -f firmimg.d6 -noreset
UTIL RECOVER:Transport:sd TargetMMC:EMMC File:firmimg.d6
UTIL RECOVER:ERROR:Could not locate 'firmimg.d6' in FAT or EXT2 file system.
UTIL FAIL
iDRAC8=> util recover -emmc -from sd -f firmimg.d7 -noreset
UTIL RECOVER:Transport:sd TargetMMC:EMMC File:firmimg.d7
UTIL RECOVER:ERROR:Could not locate 'firmimg.d7' in FAT or EXT2 file system.
U-Boot 2009.08 (Jun 11 2018 - 05:56:29) Avocent (0.0.3) EVB
CPU: SH-4A
BOARD: R0P7757LC00xxRL (Cn step) board
BOOT: Secure, HRK generated
DRAM: 240MB
(240MB of 256MB total DRAM is available on U-Boot)
ENV: Using primary env area.
In: serial
Out: serial
Err: serial
WDT2: Booted Lower Vector, 'uboot1'
sh_mmcif: 0, sh-sdhi: 1
Net: sh_eth.0, sh_g_eth.0
INFO: 00:002 Start-up -to- util_idrac_main()
INFO: 00:005 U-Boot 2009.08 (Jun 11 2018 - 05:56:29) Avocent (0.0.3) EVB
INFO: 00:006 U-Boot checkin date(08-11-2016) Version(1.1.32)
INFO: 00:006 iDRAC PPID
INFO: 00:003 SPI NOR init 4096 KiB N25Q032 bus=0 cs=0, speed=1000000, mode=3
INFO: 00:007 SH-4A Product: Major Ver=0x31 Minor Ver=0x13 C3 Little endian
Family=0x10 Major Ver=0x30 Minor Ver=0x0b
INFO: 00:140 BCM54610 OUI=0x00d897 Model=0x26 Revision=0x0a PhyAddr=1
INFO: 00:006 Dedicated monolithic mgmt NIC disabled
INFO: 00:340 SD CARD: Device: sh-sdhi Manufacturer ID: 41 OEM: 3432
Name: DELL1 Tran Speed: 25000000 Rd Blk Len: 512
SD ver 2.0 HC: Yes cap(<2gb): 3451912192 cap(>2gb): 0
ext_rev: 0 rst_n: 0 ext[96]: 0
INFO: 00:063 EMMC: Device: sh_mmcif Manufacturer ID: 90 OEM: 14a
Name: HYNIX Tran Speed: 25000000 Rd Blk Len: 512
MMC ver 4.0 HC: Yes cap(<2gb): 0 cap(>2gb): 7569408
ext_rev: 5 rst_n: 0 ext[96]: 0
INFO: 00:023 CPLD: Major Ver=0x1 Minor Ver=0x0 Maint Ver=0x3
Planar: Type=0x02 Rev=0x8 Rework=0x8 Scratch/PathRetry=0x0f
PASS: 00:014 Coin cell detected good, AD=0x397 low water=0x2c1
PASS: 00:008 PCIe SH7757_C0 Ver=0.15 MCTP en, CRC=0x8e9b6875 @0x8efbd914 cnt=0x18000
INFO: 00:008 Init PCIe mailbox(PCIe 0xFFEE0150=0x40010000)
INFO: 00:006 mode=normal
INFO: 00:002 reset_cause=recover
PASS: 00:005 Booted Lower Vector, 'uboot1' wdt2cnt=0
INFO: 00:006 wdt0cnt=0 cpld_recover_cnt=0 ddr_recover_cnt=0
PASS: 00:006 SMR0 no sermux env, default 0xd4
INFO: 00:004 GRACR=0x3c HISEL=0x00 SIRQCR5_D=0x03 SIRQCR6_D=0x01 LADMSK0=0xff2
MRSTCR0=0xfedffe7f MRSTCR1=0xfff3ff0f MRSTCR2=0x6f80feff
BARMAP=0x1 BCR=0x85000000 NCER=0x01fc NCMCR=0x0006 NCCSR=0x0303
PASS: 00:021 etherc0=
getherc0=
INFO: 00:008 Fan logic is not modified on Non-AC power up
INFO: 00:052 Env and backup CRC'ed ok
*** no text signature found ***
INFO: 00:696 Sync eMMC/SPI NOR/Alternate u-boot images
PASS: 00:077 Current u-boot1 1.1.32 verified with 'ubootN1'
Trailer Struct - Missing start token, exp=0xc0de1111 rec=0x0
FAIL: 06:813 Verify OS Images N-1: Rootfs crc exp=0xe8caa151 rec=0xcfb9c0a7
blk_start=0x48003 blk_size=0x301f0 ENV bcnt=0x603e000
FAIL: 00:013 Boot device=emmc Boot partition5/N-1
Boot Path Retry:P1/N=3 P5/N-1=3 Recover
INFO: 00:000 15:265
Hit any key to stop autoboot: 0
WDT2: Disable in abortboot()
OSWDT: Disable in abortboot()
CPLD_BMCRDY: Enable BMC_MIN_RDY in abortboot(). Prevent BIOS reset.
NOTE: After stopping u-boot in this development mode. You may need to
warm/cold reset the server when booting iDRAC manually as BIOS
may have already viewed iDRAC as unresponsive.
RECOVER:Max retries occured for both N/N-1 paths, OR forced recover.
Sometimes it does not go well especially if you didn't know your EMMC is bad where it stores the firmware.
Not having the -noreset and -clear seems to have created this situation, with the waitpid but at that point the iDRAC lights and NIC were flashing. I then hard powered down and had to use the DBG pins to get back into U-Boot.
iDRAC8=> util recover -emmc -from sd
UTIL RECOVER:Transport:sd TargetMMC:EMMC File:firmimg.d7
Loading file "firmimg.d7" from mmc device 1:1 (xxb1)
54542562 bytes read
UTIL RECOVER:SD load passed from EXT2 fs.
UTIL RECOVER:Transport time [sec:mil]: 46:594
Clear OS images in partition/s.
Clear kernelN, rootfsN, ubootN
'EMMC' blk size=[0x200][512] Erase to 0xffffffff
Mem buf size=[0x06000000][100663296] Total bytes=[0x08000000][134217728]
blocks[0x1:0x40001][1:262145]
Blocks [0x30001:0x40000] Buf[0x88000000]..fill buffer..erase/write
Completed loop 1, Elapsed time in hr:min:sec:mil 14:122
Clear rootfsN1
'EMMC' blk size=[0x200][512] Erase to 0xffffffff
Mem buf size=[0x06000000][100663296] Total bytes=[0x06F80000][116916224]
blocks[0x48003:0x7fc03][294915:523267]
Blocks [0x78003:0x7fc02] Buf[0x88000000]..fill buffer..erase/write
Completed loop 1, Elapsed time in hr:min:sec:mil 09:950
Clear ubootN1
'EMMC' blk size=[0x200][512] Erase to 0xffffffff
Mem buf size=[0x06000000][100663296] Total bytes=[0x00080000][524288]
blocks[0x7fc04:0x80004][523268:524292]
Blocks [0x7fc04:0x80003] Buf[0x88000000]..fill buffer..erase/write
Completed loop 1, Elapsed time in hr:min:sec:mil 00:133
*** no text signature found ***
*** Updating Partition 1 ***
Checking image header CRC ... OK
Checking platform env ID..... OK
Checking kernel image CRC ... OK
Checking rootfs image CRC ... OK
Checking u-boot image CRC ... OK
Skipping u-boot update ...... NO
Checking Platform image CRC . OK
Checking processor support .. OK
Copying kernel image ........ OK
Copying rootfs .............. OK
Copying u-boot1 to flash..... OK
Copying u-boot2 to flash..... OK
Copying u-boot to MMC........ OK
Copying platform image ...... OK
*** Updating Partition 5 ***
Checking image header CRC ... OK
Checking platform env ID..... OK
Checking kernel image CRC ... OK
Checking rootfs image CRC ... OK
Checking u-boot image CRC ... OK
Skipping u-boot update ...... NO
Checking Platform image CRC . OK
Checking processor support .. OK
Copying kernel image ........ OK
Copying rootfs .............. OK
Copying u-boot1 to flash..... OK
Copying u-boot2 to flash..... OK
Copying u-boot to MMC........ OK
Copying platform image ...... OK
Erasing SPI flash at 0x100000...Writing to SPI flash...done
Erasing SPI flash at 0x110000...Writing to SPI flash...done
UTIL RECOVER:Program time [sec:mil]:01:14:394
UTIL RECOVER:Total update time [sec:mil]:02:00:992
Re-load 0x1000Kbytes from u-boot offset 0x0 into ILRAM at 0x0
Force Address Error to reset iDRAC
U-Boot 2009.08 (Mar 10 2012 - 02:52:09) Avocent (0.0.3) EVB, Build: jenkins-12G_iDRAC_Releases-402
CPU: SH-4A
BOARD: R0P7757LC00xxRL (C0 step) board
BOOT: Secure, HRK generated
DRAM: 240MB
(240MB of 256MB total DRAM is available on U-Boot)
ENV: Using primary env area.
In: serial
Out: serial
Err: serial
WDT2: Booted Lower Vector, 'uboot1'
sh_mmcif: 0, sh-sdhi: 1
Net: sh_eth.0, sh_g_eth.0
INFO: 00:002 Start-up -to- util_idrac_main()
INFO: 00:005 U-Boot 2009.08 (Mar 10 2012 - 02:52:09) Avocent (0.0.3) EVB
INFO: 00:006 U-Boot checkin date(03-02-2012) Version(1.0.175)
INFO: 00:006 iDRAC PPID
INFO: 00:003 SPI NOR init 4096 KiB N25Q032 bus=0 cs=0, speed=1000000, mode=3
INFO: 00:007 SH-4A Product: Major Ver=0x31 Minor Ver=0x13 C3 Little endian
Family=0x10 Major Ver=0x30 Minor Ver=0x0b
PASS: 00:016 Dedicated monolithic mgmt NIC disabled
INFO: 00:128 BCM54610 OUI=0x3fffff Model=0x3f Revision=0x0f PhyAddr=1
INFO: 00:365 SD CARD: Device: sh-sdhi Manufacturer ID: 41 OEM: 3432
Name: DELL1 Tran Speed: 25000000 Rd Block Len: 512
SD version 2.0 High Capacity: Yes Capacity: -843055104
INFO: 00:058 EMMC: Device: sh_mmcif Manufacturer ID: 90 OEM: 14a
Name: HYNIX Tran Speed: 25000000 Rd Block Len: 512
MMC version 4.0 High Capacity: Yes Capacity: 0
INFO: 00:019 CPLD: Major Ver=0x1 Minor Ver=0x0 Maint Ver=0x3
Planar: Type=0x02 Rev=0x8 Rework=0x0 Scratch/PathRetry=0x00
PASS: 00:014 Coin cell detected good, AD=0x397 low water=0x2c1
PASS: 00:007 PCIe C0 Ver=0.13 MCTP en, CRC=0x19592849 @0x8efbf3a8 cnt=0x18000
INFO: 00:008 Init PCIe mailbox(PCIe 0xFFEE0150=0x40010000)
INFO: 00:005 mode=normal
INFO: 00:002 reset_cause=board
PASS: 00:005 Booted Lower Vector, 'uboot1' wdt2cnt=0
INFO: 00:005 wdt0cnt=0
PASS: 00:003 SMR0 no sermux env, default 0xd4
INFO: 00:004 GRACR=0x3c HISEL=0x00 SIRQCR5_D=0x03 SIRQCR6_D=0x01 LADMSK0=0xff2
MRSTCR0=0xfedffe7f MRSTCR1=0xfff3ff0f MRSTCR2=0x7f80feff
BARMAP=0x1 BCR=0x85000000 NCER=0x01fc NCMCR=0x0006 NCCSR=0x0303
PASS: 00:021 etherc0=78:45:C4:F6:88:68
getherc0=78:45:C4:F6:88:69
INFO: 00:007 Fan logic is not modified on Non-AC power up
INFO: 00:053 Env and backup CRC'ed ok
Erasing SPI flash at 0x100000...Writing to SPI flash...done
Erasing SPI flash at 0x110000...Writing to SPI flash...done
*** no text signature found ***
INFO: 02:537 Sync eMMC/SPI NOR/Alternate u-boot images
PASS: 00:076 Current u-boot1 1.0.175 verified with 'ubootN'
Trailer Struct - Missing start token, exp=0xc0de1111 rec=0x0
PASS: 03:612 Verify OS Images N: CRC32 OK: Kernel=0x4d21804a Rootfs=0x40007db7
PASS: 00:008 Boot device=emmc Boot partition1/N
Boot Path Retry:P1/N=0 P5/N-1=0
INFO: 00:000 06:990
WDT2: Disabled
Initialization complete, proceed with boot
*** no text signature found ***
No. Device
---------------------
1 EVB SD/MMC
4 FLASH
Current Device ==> 1
OS_WDT0_EN:180 seconds, Re-load ILRAM:
Boot Path Retry:P1/N=0 P5/N-1=0
Copying kernel image ... OK
## Booting kernel from Legacy Image at 82000000 ...
Image Name: sh-linux
Image Type: SuperH Linux Kernel Image (gzip compressed)
Data Size: 2535377 Bytes = 2.4 MB
Load Address: 80001000
Entry Point: 80002000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
WDT2: Disable in do_bootm_linux()
sh_eth_init
Monolithic/DRB
init started: BusyBox v1.18.4 (2012-03-10 03:35:27 UTC)
starting pid 415, tty '': '/etc/init.d/rcS'
waitfor: pid 415 ...
setting net.ipv6.conf.default.accept_dad based on kernel bootup option
enable normal accept DAD for ipv6
Sat Jan 1 00:00:01 UTC 2000 To execute command __source /etc/sysapps_script/I_1000_mountfs.sh__
Sat Jan 1 00:00:03 UTC 2000 To execute command __source /etc/sysapps_script/I_1001_trigwdt.sh__
<========= Start H/W watchdog first... =========>
Sat Jan 1 00:00:03 UTC 2000 To execute command __source /etc/sysapps_script/I_1100_nfs.sh__
Sat Jan 1 00:00:03 UTC 2000 To execute command __source /etc/sysapps_script/I_1105_ps.sh__
XXXXXX /dev/mmcblk0p11
/dev/mmcblk0p11: recovering journal
/dev/mmcblk0p11: Clearing orphaned inode 304 (uid=0, gid=0, mode=0100644, size=156)
/dev/mmcblk0p11: clean, 660/2048 files, 2831/4096 blocks (check in 5 mounts)
e2fsck 1.41.14 (22-Dec-2010)
/dev/mmcblk0p11: clean, 660/2048 files, 2831/4096 blocks (check in 5 mounts)
Sat Jan 1 00:00:04 UTC 2000 To execute command __source /etc/sysapps_script/I_1106_clear_ps.sh__
Sat Jan 1 00:00:04 UTC 2000 To execute command __source /etc/sysapps_script/I_1150_SYS_Drv.sh__
Sat Jan 1 00:00:07 UTC 2000 To execute command __source /etc/sysapps_script/I_1170_mknode.sh__
Sat Jan 1 00:00:08 UTC 2000 To execute command __/etc/sysapps_script/config_lib_init.sh__
mounting Platform Data 1 partition
Sat Jan 1 00:00:10 UTC 2000 To execute command __source /etc/sysapps_script/I_1160_OSINET.sh__
Sat Jan 1 00:00:10 UTC 2000 To execute command __source /etc/sysapps_script/I_1200_etc_defaults.sh__
Sat Jan 1 00:00:10 UTC 2000 To execute command __source /etc/sysapps_script/I_1210_sysklog_syslogd.sh__
starting syslogd
/etc/sysapps_script/syslog.sh: /sbin/aim not running
waitfor: pid 415, wpid 705
syslogd: /mmc1/idraclogs: Read-only file system
Jan 1 00:00:11 (none) syslogd 1.4.2: restart.
Jan 1 00:00:12 (none) kernel: klogd 1.4.2, log source = /proc/kmsg started.
Jan 1 00:00:12 (none) kernel: Cannot find map file.
Jan 1 00:00:12 (none) kernel: No module symbols loaded - kernel modules not enabled.
Jan 1 00:00:12 (none) kernel: cannot find any symbols, turning off symbol lookups
Jan 1 00:00:12 (none) kernel: Linux version 2.6.30 (jenkins@vmbrd-dh-r5-253.us.dell.com) (gcc version 4.3.4 (GCC) ) #1 Sat Mar 10 02:59:38 UTC 2012
Jan 1 00:00:12 (none) kernel: Boot params:
Jan 1 00:00:12 (none) kernel: ... MOUNT_ROOT_RDONLY - 00000000
Jan 1 00:00:12 (none) kernel: ... RAMDISK_FLAGS - 00000000
Jan 1 00:00:12 (none) kernel: ... ORIG_ROOT_DEV - 00000000
Jan 1 00:00:12 (none) kernel: ... LOADER_TYPE - 00000000
Jan 1 00:00:12 (none) kernel: ... INITRD_START - 00000000
Jan 1 00:00:12 (none) kernel: ... INITRD_SIZE - 00000000
Jan 1 00:00:12 (none) kernel: NMI Buffer at 0x83000000
Jan 1 00:00:12 (none) kernel: Booting machvec: SH7757LCR
Sat Jan 1 00:00:12 UTC 2000 To execute command __source /etc/sysapps_script/I_trab_asdf.sh__
Sat Jan 1 00:00:12 UTC 2000 To execute command __source /etc/sysapps_script/I_usb_drv.sh__
Jan 1 00:00:12 (none) kernel: Renesas R0P7757LC0012RL support.
Jan 1 00:00:12 (none) kernel: Node 0: start_pfn = 0x40000, low = 0x4ea00
Jan 1 00:00:12 (none) kernel: Zone PFN ranges:
Jan 1 00:00:12 (none) kernel: Normal 0x00040000 -> 0x0004ea00
Jan 1 00:00:12 (none) kernel: Movable zone start PFN for each node
Jan 1 00:00:12 (none) kernel: early_node_map[1] activIRQ 50/r8a66597_udc: IRQF_DISABLED is not guaranteed on shared IRQs
e PFN ranges
JIRQ 57/r8a66597_udc: IRQF_DISABLED is not guaranteed on shared IRQs
an 1 00:00:12 (none) kernel: 0: 0x00040000 -> 0x0004ea00
Jan 1 00:00:12 (none) kernel: On node 0 totalpages: 59904
Jan 1 00:00:12 (none) kernel: free_area_init_node: node 0, pgdat 8048f3ac, node_mem_map 804f3000
Jan 1 00:00:12 (none) kernel: Normal zone: 468 pages used for memmap
Jan 1 00:00:12 (none) kernel: Normal zone: 0 pages reserved
Jan 1 00:00:12 (none) kernel: Normal zone: 59436 pages, LIFO batch:15
Jan 1 00:00:12 (none) kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 59436
Jan 1 00:00:12 (none) kernel: Kernel command line: root=/dev/mmcblk0p2 rootwait rw rootfstype=squashfs mem=239616k console=ttyS2,115200 mac1=78:45:C4:F6:88:68 mac2=78:45:C4:F6:88:69 mode=normal reset_cause=board nmi_buf=0x83000000 quiet
Jan 1 00:00:12 (none) kernel: TRAB buffer at 8eb00000 allocated
Jan 1 00:00:12 (none) kernel: NR_IRQS:384
Jan 1 00:00:12 (none) kernel: PID hash table entries: 1024 (order: 10, 4096 bytes)
Jan 1 00:00:12 (none) kernel: Using tmu for system timer
Jan 1 00:00:12 (none) kernel: Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Jan 1 00:00:12 (none) kernel: Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Jan 1 00:00:12 (none) kernel: PVR=10300b00 CVR=73440410 PRR=00003113
Jan 1 00:00:12 (none) kernel: I-cache : n_ways=4 n_sets=256 way_incr=8192
Jan 1 00:00:12 (none) kernel: I-cache : entry_mask=0x00001fe0 alias_mask=0x00001000 n_aliases=2
Jan 1 00:00:12 (none) kernel: D-cache : n_ways=4 n_sets=256 way_incr=8192
Jan 1 00:00:12 (none) kernel: D-cache : entry_mask=0x00001fe0 alias_mask=0x00001000 n_ahid_init: Desc: Keyboard/Mouse Function
liases=2
Jan hid_init: Name: g_kbdmouse
1 00:00:12 (nonehid_init: Version: 20110426
) kernel: Memoryhid_bind: Using Major Number 233
: 232192k/239616hid_bind: using r8a66597_udc, Keyboard ep1 Mouse ep2
k available (347hid_bind: Mouse REL ep3
0k kernel code, 1200k data, 156k init)
Jan 1 00:00:12 (none) kernel: Calibrating delay loop... 230.19 BogoMIPS (lpj=1150976)
Jan 1 00:00:12 (none) kernel: Security Framework initialized
Jan 1 00:00:12 (none) kernel: Mount-cache hash table entries: 512
Jan 1 00:00:12 (none) kernel: CPU: SH7757
Jan 1 00:00:12 (none) kernel: net_namespace: 980 bytes
Jan 1 00:00:12 (none) kernel: PCI: Using configuration type 1
Jan 1 00:00:12 (none) kernel: NET: Registered protocol family 16
Jan 1 00:00:12 (none) kernel: sh pinmux: sh7757_pfc handling gpio 0 -> 504
Jan 1 00:00:12 (none) kernel: bio: create slab at 0
Jan 1 00:00:12 (none) kernel: usbcore: registered new interface driver usbfs
Jan 1 00:00:12 (none) kernel: usbcore: registered new interface driver hub
Jan 1 00:00:12 (none) kernel: usbcore: registered new device driver usb
Jan 1 00:00:12 (none) kernel: DMA: Registering DMA API.
Jan 1 00:00:12 (none) kernel: DMA: Registering sh_dmac handler (24 channels).
Jan 1 00:00:12 (none) kernel: Autoconfig PCI channel 0x80488900
Jan 1 00:00:12 (none) kernel: Scanning bus 00, I/O 0xfed00000:0xff100000, Mem 0x04000000:0x08000000
Jan 1 00:00:12 (none) kernel: NET: Registered protocol family 2
Jan 1 00:00:12 (none) kernel: IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
Jan 1 00:00:12 (none) kernel: TCP established hash table entries: 8192 (order: 4, 65536 bytes)
Jan 1 00:00:12 (none) kernel: TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
Jan 1 00:00:12 (none) kernel: TCP: Hash tables configured (established 8192 bind 8192)
Jan 1 00:00:12 (none) kernel: TCP reno registered
Jan 1 00:00:12 (none) kernel: NET: Registered protocol family 1
Jan 1 00:00:12 (none) kernel: Switched to high resolution mode on CPU 0
Jan 1 00:00:12 (none) kernel: enable PCIe shared memory area
Jan 1 00:00:12 (none) kernel: audit: initializing netlink socket (disabled)
Jan 1 00:00:12 (none) kernel: type=2000 audit(946684800.310:1): initialized
Jan 1 00:00:12 (none) kernel: squashfs: version 4.0 (2009/01/31) Phillip Lougher
Jan 1 00:00:12 (none) kernel: JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
Jan 1 00:00:12 (none) kernel: fuse init (API version 7.11)
Jan 1 00:00:12 (none) kernel: msgmni has been set to 453
Jan 1 00:00:12 (none) kernel: alg: No test for cipher_null (cipher_null-generic)
Jan 1 00:00:12 (none) kernel: alg: No test for ecb(cipher_null) (ecb-cipher_null)
Jan 1 00:00:12 (none) kernel: alg: No test for digest_null (digest_null-generic)
Jan 1 00:00:12 (none) kernel: alg: No test for compress_null (compress_null-generic)
Jan 1 00:00:12 (none) kernel: alg: No test for stdrng (krng)
Jan 1 00:00:12 (none) kernel: io scheduler noop registered
Jan 1 00:00:12 (none) kernel: io scheduler anticipatory registered
Jan 1 00:00:12 (none) kernel: io scheduler deadline registered (default)
Jan 1 00:00:12 (none) kernel: io scheduler cfq registered
Jan 1 00:00:12 (none) kernel: Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
Jan 1 00:00:12 (none) kernel: SuperH SCI(F) driver initialized
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS0 at MMIO 0xfe4b0000 (irq = 40) is a scif
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS1 at MMIO 0xfe4c0000 (irq = 76) is a scif
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS2 at MMIO 0xfe4d0000 (irq = 104) is a scif
Jan 1 00:00:12 (none) kernel: console [ttyS2] enabled
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS3 at MMIO 0xfe4c0000 (irq = 76) is a scif
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS4 at MMIO 0xfe4c0000 (irq = 76) is a scif
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS5 at MMIO 0xfe4c0000 (irq = 76) is a scif
Jan 1 00:00:12 (none) kernel: sh-sci: ttyS6 at MMIO 0xfe4c0000 (irq = 76) is a scif
Jan 1 00:00:12 (none) kernel: brd: module loaded
Jan 1 00:00:12 (none) kernel: loop: module loaded
Jan 1 00:00:12 (none) kernel: nbd: registered device at major 43
Jan 1 00:00:12 (none) kernel: sh_eth_init
Jan 1 00:00:12 (none) kernel:
Jan 1 00:00:12 (none) kernel: Monolithic/DRB
Jan 1 00:00:12 (none) kernel: sh_mii: probed
Jan 1 00:00:12 (none) kernel: Base address at 0xfee00000, 00:00:00:00:00:00, IRQ 315.
Jan 1 00:00:12 (none) kernel: sh_mii: probed
Jan 1 00:00:12 (none) kernel: Base address at 0xfef00800, 00:00:00:00:00:00, IRQ 84.
Jan 1 00:00:12 (none) kernel: sh_spi sh_spi.0: registered master spi0
Jan 1 00:00:12 (none) kernel: m25p80 spi0.1: n25Q032a (4096 Kbytes)
Jan 1 00:00:12 (none) kernel: Creating 9 MTD partitions on "m25p80":
Jan 1 00:00:12 (none) kernel: 0x000000000000-0x000000080000 : "u-boot1"
Jan 1 00:00:12 (none) kernel: 0x000000080000-0x000000100000 : "u-boot2"
Jan 1 00:00:12 (none) kernel: 0x000000100000-0x000000110000 : "env1"
Jan 1 00:00:12 (none) kernel: 0x000000110000-0x000000120000 : "env2"
Jan 1 00:00:12 (none) kernel: 0x000000120000-0x000000130000 : "fru"
Jan 1 00:00:12 (none) kernel: 0x000000130000-0x000000140000 : "res1"
Jan 1 00:00:12 (none) kernel: 0x000000140000-0x0000001c0000 : "tracebuf"
Jan 1 00:00:12 (none) kernel: 0x0000001c0000-0x000000340000 : "lcl"
Jan 1 00:00:12 (none) kernel: 0x000000340000-0x000000400000 : "res2"
Jan 1 00:00:12 (none) kernel: sh_spi sh_spi.0: registered child spi0.1
Jan 1 00:00:12 (none) kernel: spi_sh: version 2009-06-10
Jan 1 00:00:12 (none) kernel: mknod /dev/aess_wdtdrv c 10 130
Jan 1 00:00:12 (none) kernel: aess_wdtdrv: initialized. (nowayout=0)
Jan 1 00:00:12 (none) kernel: device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: dm-devel@redhat.com
Jan 1 00:00:12 (none) kernel: sh_mmcif: driver version 2010-03-17
Jan 1 00:00:12 (none) kernel: sh-sdhi: power control pin initiated
Jan 1 00:00:12 (none) kernel: mmc1: power off - 8f
Jan 1 00:00:12 (none) kernel: heartbeat: version 0.1.1 loaded
Jan 1 00:00:12 (none) kernel: sermux sermux: version 2010-05-26
Jan 1 00:00:12 (none) kernel: nf_conntrack version 0.5.0 (3744 buckets, 14976 max)
Jan 1 00:00:12 (none) kernel: IPv4 over IPv4 tunneling driver
Jan 1 00:00:12 (none) kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Jan 1 00:00:12 (none) kernel: TCP cubic registered
Jan 1 00:00:12 (none) kernel: NET: Registered protocol family 10
Jan 1 00:00:12 (none) kernel: lo: Disabled Privacy Extensions
Jan 1 00:00:12 (none) kernel: tunl0: Disabled Privacy Extensions
Jan 1 00:00:12 (none) kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team
Jan 1 00:00:12 (none) kernel: IPv6 over IPv4 tunneling driver
Jan 1 00:00:12 (none) kernel: sit0: Disabled Privacy Extensions
Jan 1 00:00:12 (none) kernel: NET: Registered protocol family 17
Jan 1 00:00:12 (none) kernel: RPC: Registered udp transport module.
Jan 1 00:00:12 (none) kernel: RPC: Registered tcp transport module.
Jan 1 00:00:12 (none) kernel: 802.1Q VLAN Support v1.8 Ben Greear
This is mainly for if you've done something silly like trying to clone a Live, running VM image. In this example, the VM initially finds grub and tries to boot but is kicked straight into initramfs rescue mode/busybox right after this.
If you've done this "silly" thing, you could have dataloss but a lot of times just using fsck will fix it as you are guaranteed at best to have some corruption and inconsistencies in the filesystem. My theory is that some files were corrupt or not in their right places (eg. inode issues, unclaimed blocks etc..).
In many of these cases, just run an fsck and you may find that you can successfully boot, but how much data you lose is dependent on your application and how much the filesystem changed before you started the copy/vs when it ended.
The correct way is to take a snapshot or at least make sure the VM is off. Another alternative if you can't shutdown is to do rsync or some other similar remote filecopy that constantly updates.
Many times just doing an update-grub may find Windows and add it to grub, but a lot of times it won't.
sudo vi /etc/grub.d/40_custom
menuentry "Windows 10" {Change Windows 10 to whatever you want to call it. For example if it was for Windows 11 you'd probably want to call it "Windows 11" to avoid confusion.
set root='(hd0,0)'
chainloader + 1
}
The set root= part wil also vary. If the drive that contains windows is known to hd0 as grub then keep it the same, but if you have other drives, it could be hd1,hd2 etc... and depending on your partition table setup the second part after the "," 0 means partition 1 but sometimes it may be msdos1.
Here's an example of booting Windows from the second hd on msdos3 partiton AKA partition #3
menuentry "Windows 10" {
set root='(hd0,msdos3)'
chainloader + 1
}
sudo update-grub
There are a few things we have to understand to make all of this work though, which require you to be familiar with DNS as well.
apt install opendkim
systemctl enable opendkim
Syslog yes
SyslogSuccess yes
Mode sv
OmitHeaders .
Socket inet:8891@localhost
Domain yourdomain.com
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
UserID opendkim:opendkim
yourdomain=yourdomain.com
mkdir -p /etc/opendkim/keys/$yourdomain
cd /etc/opendkim/keys/$yourdomain
opendkim-genkey -r -d $yourdomain
#Add this line to /etc/opendkim/KeyTable
The "default" is what is called the selector, it could be nearly anything but we're calling it default here. Be sure to change "yourdomain.com" to the actual domain you want DKIM signing for.
default._domainkey.yourdomain.com yourdomain.com:default:/etc/opendkim/keys/yourdomain.com/default.private
#Add this to line to /etc/opendkim/SigningTable
*@yourdomain.com default._domainkey.yourdomain.com
The * allows all e-mails from the domain to be signed, change it if this should not be the case.
Again, be sure you change yourdomain.com to your actual domain that you setup in the KeyTable in the previous step.
*Remember to restart opendkim after adding any new domain or the change will not be applied and e-mails will not be signed.
Here's an example using bind/named:
#edit bind/named DNS entry for domain/zone
cat /etc/opendkim/keys/yourdomain.com/default.txt
Take the output of the above and then add it to your zonefile like below:
default._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; "
"p=blablabla" ) ; ----- DKIM key default for yourdomain.com
Be sure to change the blablabla to the output of /etc/opendkim/keys/yourdomain.com/default.txt
_dmarc.yourdomain.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:someaddress@yourdomain.com"
Be sure to change someaddress@yourdomain.com to a real address for your domain, you will receive DMARC reports to this address.
yourdomain.com. IN TXT "v=spf1 a mx +all"
The above is a quick example of a zonefile entry in bind for SPF, it allows your domain's A record MX record to send mail and doesn't have a hard fail. If for example you need to add another server's IP (perhaps another server needs to send mail for yourdomain.com) then update as below:
As you'll see adding the +ip4:8.8.8.8 would allow a server with 8.8.8.8 to send mail for the domain.
yourdomain.com. IN TXT "v=spf1 a mx +ip4:8.8.8.8 +all"
Set permissions to be sure:
chown -R opendkim.opendkim /etc/opendkim
# edit /etc/postfix/main.cf
cp -a /etc/postfix/main.cf /etc/postfix/main.cf-`date +%Y%m%d-%s`
#edit /etc/postfix/main.cf
#enable dkim
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
systemctl restart postfix
*Remember to restart opendkim after adding any new domain or the change will not be applied and e-mails will not be signed.
apt install tftpd-hpa
#change TFTP_ADDRESS to by setting address to 192.168.1.1:69 or the IP you need, otherwise it will listen on all IPs and interfaces which could be a security risk.
# edit /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="192.168.1.1:69"
TFTP_OPTIONS="--secure"
systemctl restart tftpd-hpa
#now edit our isc dhcp server /etc/dhcp/dhcpd.conf
#under the subnet declaration:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.200;
#deny unknown-clients;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
next-server 192.168.1.1;
filename "pxelinux.0";
}
#how to exclude hosts from receiving a DHCP
# add this in the subnet declaration
host whatevernameyouwant {
hardware ethernet 00:10:28:e2:49:2e;
ignore booting;
}
#comment out the ignore booting and restart dhcpd if you want to re-enable it
###
apt install syslinux pxelinux
#for MBR copy this
cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/menu.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/memdisk /srv/tftp/
cp /usr/lib/syslinux//modules/bios/mboot.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/chain.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/libutil.c32 /srv/tftp/
mkdir /srv/tftp/images
mkdir /srv/tftp/pxelinux.cfg
vi /srv/tftp/pxelinux.cfg/default
default menu.c32
prompt 5
timeout 300
MENU TITLE Menu
LABEL rtt-Diagnostic
MENU rtt-Diagnostic
kernel ../images/kernelfs
service isc-dhcp-server restart
This sometimes happens when trying to install the EFI version of grub to a device when you are booted into Legacy/MBR mode. It doesn't seem to occur on all machines, but some and seems somewhat BIOS dependent.
grub-install --target=x86_64-efi /dev/sda
Installing for x86_64-efi platform.
grub-install.real: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install.real: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
EFI variables are not supported on this system.
efibootmgr: option requires an argument -- 'd'
efibootmgr version 15
usage: efibootmgr [options]
-a | --active sets bootnum active
-A | --inactive sets bootnum inactive
-b | --bootnum XXXX modify BootXXXX (hex)
-B | --delete-bootnum delete bootnum
-c | --create create new variable bootnum and add to bootorder
-C | --create-only create new variable bootnum and do not add to bootorder
-D | --remove-dups remove duplicate values from BootOrder
-d | --disk disk (defaults to /dev/sda) containing loader
-r | --driver Operate on Driver variables, not Boot Variables.
-e | --edd [1|3|-1] force EDD 1.0 or 3.0 creation variables, or guess
-E | --device num EDD 1.0 device number (defaults to 0x80)
-g | --gpt force disk with invalid PMBR to be treated as GPT
-i | --iface name create a netboot entry for the named interface
-l | --loader name (defaults to "EFIubuntugrub.efi")
-L | --label label Boot manager display label (defaults to "Linux")
-m | --mirror-below-4G t|f mirror memory below 4GB
-M | --mirror-above-4G X percentage memory to mirror above 4GB
-n | --bootnext XXXX set BootNext to XXXX (hex)
-N | --delete-bootnext delete BootNext
-o | --bootorder XXXX,YYYY,ZZZZ,... explicitly set BootOrder (hex)
-O | --delete-bootorder delete BootOrder
-p | --part part (defaults to 1) containing loader
-q | --quiet be quiet
-t | --timeout seconds set boot manager timeout waiting for user input.
-T | --delete-timeout delete Timeout.
-u | --unicode | --UCS-2 handle extra args as UCS-2 (default is ASCII)
-v | --verbose print additional information
-V | --version return version and exit
-w | --write-signature write unique sig to MBR if needed
-y | --sysprep Operate on SysPrep variables, not Boot Variables.
-@ | --append-binary-args file append extra args from file (use "-" for stdin)
-h | --help show help/usage
grub-install.real: error: efibootmgr failed to register the boot entry: Operation not permitted.
[Wed Nov 01 18:47:08 2023] [error] Unable to configure verify locations for client authentication
[Wed Nov 01 18:47:08 2023] [error] SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line
[Wed Nov 01 18:47:08 2023] [error] SSL Library Error: 185090057 error:0B084009:x509 certificate routines:X509_load_cert_crl_file:PEM lib
It actually gives us a good clue that at last one component of our cert is invalid/improperly formatted. So check your CA Bundle, Cert and Key to make sure they are all correct. After that, restart apache2 and everything should be good
This can break things easily in remove environments where it was normally easy to convert a normal eth0 to a bridge under br0, and that bridge would normally have the same MAC address by default, which is desirable for most situations.
In Debian 11 this is different for some reason now.
https://unix.stackexchange.com/questions/681013/bridge-gets-random-mac-instead-of-port-address
One simple solution is to set the hwaddress in /etc/network/interfaces:
iface br0 inet static
bridge_ports eth0
address 172.16.1.3
netmask 255.255.255.0
gateway 172.16.1.1
hwaddress 00:1d:e0:00:13:58
Set the hwaddress to the mac address of eth0 to solve this problem. What happens is that if you don't do this, the server will become inaccessible after some random amount of time, at least initially until a reboot or network restart.
This may be a result of poor cloning without regenerating the machine-id:
#possibly related, we need to delete the machine-id and generate a new one
rm /var/lib/dbus/machine-id
rm /etc/machine-id
Regenerate new machine-id:
The file lives in /etc and /var/lib/dbus and both must match.
dbus-uuidgen --ensure=/etc/machine-id
cp /etc/machine-id /var/lib/dbus/